错误处理
错误处理(error handling)是处理可能发生的失败情况的过程。例如读取一个文件时 失败了,如果继续使用这个无效的输入,那显然是有问题的。注意到并且显式地 处理这种错误可以避免程序的其他部分产生潜在的问题。
在 Rust 中有多种处理错误的方式,在接下来的小节中会一一介绍。它们多少有些 区别,使用场景也不尽相同。总的来说:
- 显式的
panic
主要用于测试,以及处理不可恢复的错误。在原型开发中这很有用,比如 用来测试还没有实现的函数,不过这时使用unimplemented
更能表达意图。另外在 测试中,panic
是一种显式地失败(fail)的好方法。 Option
类型是为了值是可选的、或者缺少值并不是错误的情况准备的。比如说寻找 父目录时,/
和C:
这样的目录就没有父目录,这应当并不是一个错误。当处理Option
时,unwrap
可用于原型开发,也可以用于能够确定Option
中一定有值 的情形。然而expect
更有用,因为它允许你指定一条错误信息,以免万一还是出现 了错误。- 当错误有可能发生,且应当由调用者处理时,使用
Result
。你也可以unwrap
然后 使用expect
,但是除了在测试或者原型开发中,请不要这样做。
有关错误处理的更多内容,可参考官方文档的错误处理的章节。