# 错误处理

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

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

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