本技能用于 Rust 错误处理,围绕失败分类、错误表示与传播展开。
用途:指导何时使用 Option、Result、panic,以及如何设计错误类型。
主要能力:1)Option 用于“缺失属正常”的查询与可选配置;2)Result 用于 I/O、解析、校验、网络等可预期失败;3)使用 thiserror 定义带 #[from] 的枚举错误,适合库代码与公开 API;4)使用 anyhow 配合 .context()、bail!,适合应用层快速开发;5)? 传播、.context() 添加上下文、.unwrap_or() 提供默认值;6)Option 与 Result 互相转换,如 ok_or、ok、and_then;7)通过 source() 遍历错误源链打印因果。
使用方式:先分类失败(缺失→Option,可恢复失败→Result,bug/不变量→panic),再选错误表示(库用 thiserror,应用用 anyhow),最后决定传播或处理。校验可用 cargo clippy -- -W clippy::unwrap_used -W clippy::expect_used、-W clippy::panic,并运行 cargo test。
适用场景:库与公开 API、应用内部逻辑、配置解析、Web 与异步代码的错误处理。
限制:避免在生产路径使用 unwrap/expect,避免 let _ = 静默忽略错误、泛化错误消息、将错误统一转字符串丢失类型。资料未提供具体平台、收费与价格信息。