错误处理


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


Rust 将错误分为两大类:可恢复不可恢复 错误。对于可恢复的错误,例如 file not found 错误,我们很可能只想向用户报告问题并重试该作。不可恢复的错误总是 bug 的症状,例如尝试访问数组末尾之外的位置,因此我们希望立即停止程序。


大多数语言不区分这两种类型的错误,而是使用异常等机制以相同的方式处理这两种错误。Rust 没有例外。相反,它具有类型 Result<T、E>(用于可恢复错误)和 panic!宏(当程序遇到不可恢复的错误时停止执行)。本章首先介绍如何调用 panic!,然后讨论返回 Result<T, E> 值。此外,我们还将探讨在决定是尝试从错误中恢复还是停止执行时的注意事项。