跳到主要内容

Rust 错误处理

阐述

Rust 用一个枚举类型来表示可能出错的结果:

enum Result<T, E> {
Ok(T),
Err(E),
}

可以用以下的方式来处理这个值:

  • 模式匹配:可以分别匹配数据和错误,也可以匹配错误的不同类型
  • 通过 unwrap 或者 expect 来抛出 panic
  • 通过 ? 来传播错误,使得函数的返回值也变成 Result<T, E>,还能自动提升类型

实例

use std::fs::File;
use std::io;
use std::io::Read;

fn read_username_from_file() -> Result<String, io::Error> {
let mut s = String::new();

File::open("hello.txt")?.read_to_string(&mut s)?;

Ok(s)
}

性质

相关内容

参考文献