Result 与错误处理
Ok/Err、? 运算符与错误传播
本节你将能
用 Result 与 ? 传播错误,并区分可恢复错误与 panic。
直觉模型
Result 是函数的「双轨返回」:成功走 Ok,失败走 Err;? 是自动检票口——失败则提前返回。
核心要点
fn f() -> Result<T, E>;调用处用?或 match- 库错误常用
thiserror;应用层可用anyhow简化 panic!留给「编程错误/不可恢复」;业务失败用 Result
use std::fs;
fn read_cfg(path: &str) -> Result {
let s = fs::read_to_string(path)?;
Ok(s)
}
常见误区
把所有 Err 直接 unwrap——等于放弃错误处理设计。
动手
解析字符串为 i32,失败返回自定义错误信息。
互动
完成测验;第四章进入泛型与 Trait。
本节小结
Option/Result + match 是 Rust 错误与空值的主干。