Rust 程序设计语言 简体中文版 1.85.0重试操作。 不可恢复的错误总是 bug 出现的征兆,比如试图访问一个超过数组末端的位置,因此我们要 立即停止程序。 大多数语言并不区分这两种错误,并采用类似异常(exception)这样方式统一处理它们。 Rust 没有异常。相反,它有 Result类型,用于处理可恢复的错误,还有 panic! 宏, 在程序遇到不可恢复的错误时停止执行。本章首先介绍 panic! 调用,接着会讲到如何返回 生时打印调用堆栈(call stack)以便于定位 panic 的原因。 响应 panic 时的栈展开或终止 当出现 panic 时,程序默认会开始 展开(unwinding),这意味着 Rust 会回溯栈并清 理它遇到的每一个函数的数据,不过这个回溯并清理的过程有很多工作。另一种选择 是直接 终止(abort),这会不清理数据就退出程序。 那么程序所使用的内存需要由操作系统来清理。如果你需要项目的最终二进制文件越 Result 来从错误中恢复。 173/562Rust 程序设计语言 简体中文版 用 Result 处理可恢复的错误 大部分错误并没有严重到需要程序完全停止执行。有时函数失败的原因很容易理解并加以处 理。例如,如果因为打开一个并不存在的文件而失败,此时我们可能想要创建这个文件,而不 是终止进程。 回忆一下第二章 “使用 Result 类型来处理潜在的错误” 部分中的那个 Result 枚举,它定义有 0 码力 | 562 页 | 3.23 MB | 1 月前3
共 1 条
- 1













