本系列录制的视频主要放在B站上Rust死灵书学习视频

Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source

Rust分层的错误处理体系

  • 有些值可以为空,则使用Option;
  • 如果发生了错误,而错误可以被正常处理,用Result;
  • 如果发生了错误,但是没办法正常处理,就让线程Panic;
  • 如果发生了更严重的问题,则终止(abort)程序。

在Rust中,Panic只能被任务的所有者捕获,而捕获后必须立即对它进行相应处理,否则任务会自己停止。

  • 捕获panic:catch_panic可以在不启动一个线程的情况下捕获panic,示例如下:
use std::panic;fn main() {let result = panic::catch_unwind(|| {println!("hello!");}); assert!(result.is_ok());let result = panic::catch_unwind(|| {panic!("oh no!");}); assert!(result.is_err());println!("Hello, world!");
}
  • Rust的展开方式没有试图和其它语言的展开方式兼容,因此,从其它语言展开Rust的栈或者从Rust展开其它语言的栈,属于未定义行为。所以必须在进入FFI之前捕获所有的Panic!

020 Rust死灵书之展开相关推荐

  1. 016 Rust死灵书之安全方式内存初始化

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 介绍 所 ...

  2. 025 Rust死灵书之原子操作

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 原 ...

  3. 026 Rust死灵书之实现Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 从 ...

  4. 019 Rust死灵书之资源管理

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 基于所有 ...

  5. 024 Rust死灵书之Send和Sync

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source S ...

  6. 008 Rust死灵书之生命周期

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust相关的源码资料在:https://github.com/anonymousGiga 笔记内容 今天我们跟大家聊一聊生命周期. 命周期 ...

  7. 027 Rust死灵书之Vec内存分配

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source V ...

  8. 035 Rust死灵书之Vec处理零尺寸类型

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

  9. 033 Rust死灵书之重构Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

最新文章

  1. string Format转义大括号
  2. 计算机c盘属性不显示安全选项,win7系统中文件夹属性安全选项卡空白的解决方法...
  3. android 第三方登录界面,Android App集成第三方登录与换肤指南
  4. 【译】Asp.Net 导出 Excel 数据的9种方案
  5. Docker加入白名单
  6. 设计师们还不快着手准备圣诞海报?PSD分层模板,轻松交稿
  7. 云linux搭建 arm开发,arm集成开发环境搭建
  8. Docke--利用 commit 理解构建镜像
  9. 电商人:别再跟数据透视表苦苦挣扎,这个报表神器才是你最后出路
  10. 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...
  11. [物理学与PDEs]第1章习题14 求解 rot 方程
  12. CodeVs天梯白银Silver题解
  13. 关于Tortoise git汉化包装了,不管用,仍然是英文菜单的问题记录
  14. 【Python学习笔记之一】Python关键字及其总结
  15. [入门阅读]怎样在android中解析JSON
  16. Windows下实现gettimeofday()函数
  17. EDR BYPASS
  18. wannier插值能带拟合1
  19. intell IDE初始用
  20. Spring框架原理 | IOC/DI | Bean

热门文章

  1. 注释详细 基于C++实现链表队列 实现模拟医院看病排队问题 实现链表的基本操作
  2. DeepMind 研发出类脑 AI 神经元,具备超强空间导航能力
  3. 10. 请至少列举5个 PEP8 规范(越多越好)。
  4. AP考试取消,AP课程学生如何申请英国大学?
  5. 为 FTP7 RTM 配置 Windows Firewall
  6. matplotlib 减少subplot空白
  7. 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐
  8. 关于报错信息为A complete log of this run can be found in:
  9. (转)CPU/GPU/TPU/NPU傻傻分不清楚
  10. springboot项目添加了logback-spring.xml配置文件不生效