错误处理
错误处理是处理可能出现失败情况的过程。例如,读取文件失败后继续使用那个错误的输入显然会导致问题。注意并明确管理这些错误可以使程序的其他部分避免各种陷阱。
Rust 中有多种处理错误的方法,这些方法将在接下来的小节中详细介绍。它们或多或少都有一些细微的差别和不同的使用场景。一般来说:
显式的 panic
主要用于测试和处理不可恢复的错误。在原型开发中,它可能会有用,例如在处理尚未实现的函数时。但在这些情况下,使用更具描述性的 unimplemented
会更好。在测试中,panic
是一种合理的显式失败方式。
Option
类型用于值是可选的情况,或者缺少值不构成错误条件的情况。例如目录的父目录 - /
和 C:
就没有父目录。在处理 Option
时,对于原型设计和绝对确定有值的情况,使用 unwrap
是可以的。然而,expect
更有用,因为它允许你指定一个错误消息,以防万一出错。
当有可能出错且调用者必须处理问题时,请使用 Result
。你也可以对它们使用 unwrap
和 expect
(除非是测试或快速原型,否则请不要这样做)。
关于错误处理更详尽的讨论,请参阅官方文档中的错误处理章节。