mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2026-08-19 12:43:28 +08:00
Updated src/Ch09_Error_Handling.md'.
This commit is contained in:
@@ -1,23 +1,21 @@
|
||||
# 错误处理
|
||||
|
||||
错误属于软件中的家常便饭,因此 Rust 提供了数种用于处理出错情形的特性。许多情况下,Rust 要求咱们在咱们代码编译前,知晓某个错误的可能性并采取一些措施。通过确保咱们在将代码部署到生产环境前,发现错误并进行适当处理,这一要求令到咱们的程序更加健壮!
|
||||
错误属于软件中不可避免的事实,因此 Rust 有着数项特性用于处理出错情形。许多情况下,Rust 要求咱们在咱们的代码将要编译前,知晓错误的可能性并采取一些措施。这一要求通过确保咱们在将代码部署到生产环境前,发现错误并予以适当处理,让咱们的程序更加健壮!
|
||||
|
||||
|
||||
Rust 将错误分为两大类:
|
||||
Rust 分组错误为两个大类:
|
||||
|
||||
- *可恢复* 错误,*recoverable* errors;
|
||||
- 与 *不可恢复* 错误, *unrecoverable* errors。
|
||||
- 可恢复错误,*recoverable* errors;
|
||||
- 与不可恢复错误, *unrecoverable* errors。
|
||||
|
||||
|
||||
对于比如 *文件未找到* 这样的可恢复错误,我们很可能只想将此问题报告给用户并重试该操作。而比如试图访问超出某个数组末尾位置这种不可恢复错误,则总是一些代码问题,bugs,的表征,因此我们会打算立即停止程序。
|
||||
对于可恢复错误,比如 *文件未找到* 错误,我们很可能只想报告问题给用户并重试操作。而不可恢复错误总是一些 bug 的征兆,因此我们会希望立即停止程序。
|
||||
|
||||
|
||||
大多数语言并不区分这两类错误,而是使用异常等机制,以同样方式处理这两种错误。**Rust 没有异常**。相反,他有着
|
||||
大多数语言都未区分这两类错误,并使用诸如异常等机制以同样方式处理这两种错误。Rust 没有异常。相反,他有着
|
||||
|
||||
- 用于可恢复错误的类型 `Result<T, E>`;
|
||||
- 和在程序发生不可恢复错误时,停止执行的 `panic!` 宏。
|
||||
|
||||
|
||||
本章首先介绍 `panic!` 宏的调用,然后讨论返回 `Result<T, E>` 的值。此外,我们将探讨在决定是尝试从错误中恢复,还是停止执行时的一些考量。
|
||||
- 与在程序遇到不可恢复错误时停止执行的 `panic!` 宏。
|
||||
|
||||
这一章首先介绍调用 `panic!` 宏,然后讨论返回 `Result<T, E>` 的值。此外,我们将探讨在决定是否尝试从错误中恢复,还是停止执行时的一些考量。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user