Skip to content

错误处理

fn main() {
let age = 18;
// 使用unwrap() 获取结果,如果结果是Err,则panic
// let result = do_something(age).unwrap();
// 使用expect() 获取结果,如果结果是Err,则panic,并给出提示
// let result = do_something(age).expect("年龄小于18");
// println!("result: {}", result);
// 使用match 获取结果
let result = do_something(age);
match result {
Ok(s) => println!("{}", s),
Err(e) => println!("error: {}", e),
}
}
fn do_something(age: u8) -> Result<String, String> {
if age > 18 {
Ok(String::from("成年"))
} else {
Err(String::from("未成年"))
}
}
fn main() -> Result<(), AppError> {
let file = File::open("test.txt")?;
let mut reader = BufReader::new(file);
let mut line = String::new();
reader.read_line(&mut line)?;
println!("{}", line);
Ok(())
}
enum AppError {
DatabaseError(String),
JwtError(String),
Unauthorized,
BadRequest(i32),
IoError(String),
}
impl From<io::Error> for AppError {
fn from(value: Error) -> Self {
Self::IoError(format!("IO error: {}", value))
}
}