错误处理
软件中难免会出现错误,因此 Rust 提供了许多功能来处理各种异常情况。在许多情况下,Rust 要求你在代码编译通过之前承认错误可能发生,并采取相应措施。这项要求能让程序更加健壮,确保你在将代码部署到生产环境之前发现并妥善处理错误!
Rust 将错误分为两大类:可恢复错误和不可恢复错误。对于可恢复错误,例如文件未找到,我们通常只需向用户报告问题并重试操作。不可恢复错误总是程序缺陷的表现,例如尝试访问数组末尾之外的位置,因此我们希望立即停止程序。
大多数语言不会区分这两类错误,而是使用异常等机制以相同方式处理它们。Rust 没有异常。相反,它使用 Result<T, E> 类型表示可恢复错误,并提供 panic! 宏,在程序遇到不可恢复错误时停止执行。本章会先介绍调用 panic!,然后讨论返回 Result<T, E> 值。此外,我们还会探讨在决定尝试从错误中恢复还是停止执行时需要考虑的因素。