错误处理

错误是软件中不可避免的事实,因此 Rust 拥有多种处理出错情况的功能。在许多情况下,Rust 要求你承认错误的可能性并采取一些行动,你的代码才能编译。这一要求通过确保你在将代码部署到生产环境之前发现错误并适当处理,从而使你的程序更加健壮!

Rust 将错误分为两大类:可恢复不可恢复错误。对于可恢复的错误,例如文件未找到错误,我们通常只是想向用户报告问题并重试操作。不可恢复的错误总是错误的征兆,例如尝试访问数组末尾之外的位置,因此我们希望立即停止程序。

大多数语言不会区分这两种错误,并以相同的方式处理它们,使用诸如异常之类的机制。Rust 没有异常。相反,它有用于可恢复错误的类型 Result<T, E> 和在程序遇到不可恢复错误时停止执行的 panic! 宏。本章首先介绍调用 panic!,然后讨论返回 Result<T, E> 值。此外,我们将探讨在决定是否尝试从错误中恢复或停止执行时的考虑因素。