# 错误处理 Option / Result

URL: https://caijiao.org/rust/07-advanced/02-error-handling
Source: docs/rust/07-advanced/02-error-handling.md
Description: Rust 提供 Option 和 Result 两种类型安全地处理错误和缺失值，避免空指针和异常，提高代码健壮性。

Rust 使用 `Option` 和 `Result` 类型来安全地处理可能失败或缺失的情况。

## Option 类型

表示值存在 (`Some`) 或不存在 (`None`)：

```rust
let some_number = Some(5);
let no_number: Option<i32> = None;

if let Some(n) = some_number {
    println!("值是 {}", n);
} else {
    println!("没有值");
}
```

## Result 类型

用于错误处理，包含 `Ok` 和 `Err`：

```rust
fn divide(a: f64, b: f64) -> Result<f64, String> {
    if b == 0.0 {
        Err(String::from("除数不能为零"))
    } else {
        Ok(a / b)
    }
}

match divide(10.0, 2.0) {
    Ok(result) => println!("结果是 {}", result),
    Err(e) => println!("错误: {}", e),
}
```

## 代码演示

Rust Playground 示例代码
