rust-lang-zh_CN/src/Ch09_Error_Handling.md
2023-11-30 16:21:45 +08:00

1.3 KiB
Raw Blame History

错误处理

在软件中,错误是家常便饭,因此 Rust 有数个用于处理某些东西出了岔子情形的特性。在许多情况下Rust 都要求编程者知晓某种错误的可能性,进而在代码编译之前就采取一些措施。这样的要求通过确保编程者在将其代码部署到生产环境之前,会发现错误并对其进行恰当处理,而使得他们的程序更为健壮!

Rust 将错误分组为两个主要类别: 可恢复recoverable不可恢复unrecoverable 错误。对于可恢复错误,比如 文件未找到 错误,大多数情况下只要将该故障汇报给用户,并重试该操作。而不可恢复错误则总是代码错误的表征,像是尝试访问超出数组末端的某个位置,进而因此就要立即停止该程序。

大多数语言都没有区分这两种错误而以同样方式使用诸如异常的机制处理这两种错误。Rust 没有异常。相反Rust 有着用于可恢复错误的类型 Result<T, E>,以及在程序发生了不可恢复错误时,停止程序执行的 panic!the panic! macro。本章将首先涵盖对 panic! 的调用,并在随后讲解那些返回的 Result<T, E> 值。此外,这里会对在决定是否要尝试从错误中恢复,还是要停止程序的执行时的诸多考虑,进行探讨。