← 学习中心

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 错误与空值的主干。

Result 与错误处理 - 生命科学与前沿科技学习平台 | 必学必会