错误处理
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)) }}