错误处理

错误处理是处理失败可能性的过程。例如,读取文件失败,然后继续使用错误的输入显然是有问题的。注意到并明确地管理这些错误可以使程序的其余部分免受各种陷阱的影响。

在 Rust 中有多种处理错误的方法,这些方法在以下小节中描述。它们都有或多或少的细微差别和不同的用例。作为经验法则:

显式的 panic 主要用于测试和处理不可恢复的错误。对于原型设计,它可能很有用,例如在处理尚未实现的函数时,但在这些情况下,更具描述性的 unimplemented 更好。在测试中,panic 是一种显式失败的合理方式。

当值是可选的,或者缺少值不是错误条件时,使用 Option 类型。例如,目录的父目录 - /C: 没有父目录。在处理 Option 时,unwrap 适用于原型设计以及绝对确定保证有值的情况。但是,expect 更有用,因为它允许您在发生任何问题时指定错误消息。

当事情确实可能出错,并且调用者必须处理该问题时,请使用 Result。您也可以 unwrapexpect 它们(除非是测试或快速原型,否则请不要这样做)。

有关错误处理的更严格的讨论,请参阅官方书籍中的错误处理部分。