# 错误处理 在软件中,错误是家常便饭,因此 Rust 有数个用于处理某些东西出了岔子情形的特性。在许多情况下,Rust 都要求编程者知晓某种错误的可能性,进而在代码编译之前就采取一些措施。这样的要求通过确保编程者在将其代码部署到生产环境之前,会发现错误并对其进行恰当处理,而使得他们的程序更为健壮! Rust 将错误分组为两个主要类别: *可恢复(recoverable)* 与 *不可恢复(unrecoverable)* 错误。对于可恢复错误,比如 *文件未找到* 错误,大多数情况下只要将该故障汇报给用户,并重试该操作。而不可恢复错误则总是代码错误的表征,像是尝试访问超出数组末端的某个位置,进而因此就要立即停止该程序。 大多数语言都没有区分这两种错误,而以同样方式,使用诸如异常的机制处理这两种错误。Rust 没有异常。相反,Rust 有着用于可恢复错误的类型 `Result`,以及在程序发生了不可恢复错误时,停止程序执行的 `panic!` 宏(the `panic!` macro)。本章将首先涵盖对 `panic!` 的调用,并在随后讲解那些返回的 `Result` 值。此外,这里会对在决定是否要尝试从错误中恢复,还是要停止程序的执行时的诸多考虑,进行探讨。