 Rust 程序设计语言 简体中文版 1.85.0重试操作。 不可恢复的错误总是 bug 出现的征兆,比如试图访问一个超过数组末端的位置,因此我们要 立即停止程序。 大多数语言并不区分这两种错误,并采用类似异常(exception)这样方式统一处理它们。 Rust 没有异常。相反,它有 Result 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 | 26 天前3
共 1 条
- 1













