错误处理
错误处理是指处理可能出现的故障的过程。例如,读取文件失败,然后继续使用该*错误*输入显然会有问题。注意到并明确管理这些错误可以避免程序的其余部分出现各种陷阱。
在 Rust 中,有多种方法可以处理错误,这些方法将在以下各小节中介绍。它们都或多或少存在细微的差别,并且有不同的用例。根据经验法则
显式 panic
主要用于测试和处理不可恢复的错误。对于原型设计,它可能很有用,例如在处理尚未实现的函数时,但在这些情况下,更具描述性的 unimplemented
会更好。在测试中,panic
是显式失败的合理方式。
Option
类型用于值可选或缺少值不是错误情况时。例如,目录的父目录 - /
和 C:
没有父目录。在处理 Option
时,unwrap
适用于原型设计和绝对确定保证有值的情况。但是,expect
更有用,因为它允许您在出现问题时指定错误消息。
当事情有可能出错并且调用者必须处理问题时,请使用 Result
。您也可以对它们进行 unwrap
和 expect
操作(除非是测试或快速原型设计,否则请不要这样做)。
有关错误处理的更严格的讨论,请参阅官方书籍中的错误处理部分。