关于程序语言中的Error,一般可以分为错误和异常。
错误和异常的区别:
1. 错误,一般是指程序员有能力解决的问题;
2. 异常,是指程序员无法解决的问题或者是说特定的代码逻辑错误;
在Rust中,分为 不可恢复的错误 (异常) 和 可恢复的错误(错误)。
如何产生不可恢复的错误:
示例:
// 1. 使用 panic! 宏 fn main() { panic!("error"); println!("unreachable"); } // 2. 断言(宏) // 常用的 assert! , assert_eq! fn main() { // assert!(1 == 2); assert_eq(1, 2); } // 3. 未实现的代码 // 声明一个临时未声明函数体的函数 fn add(_a: u32, _b: u32) -> u32 { unimplemented!() } fn main() { let _val = add(0, 1); } // 4. 不可达的代码 fn main() { unreachable!() }
如何产生可恢复的错误:
示例
// 1. 利用Rust中的 Result 枚举 fn main() { // 成功后的响应结果 let success: Result<u32, &'static str> = Result::Ok(0); println!("{:?}", success); // 失败后的返回 let fail: Result<u32, &'static str> = Result::Err("error"); println!("{:?}", fail); } // or fn main() { let res = std::fs::read("/a/b"); match res { Ok(val) => println!("{:?}", std::str::from_utf8(&val).unwrap()), Err(err) => println!("{:?}", err), } }
标签:错误,恢复,assert,Rust,println,main,fn,Result From: https://www.cnblogs.com/fanqshun/p/17018042.html