错误处理
- 返回代码
- 异常处理
可恢复的异常
- Optionpub enum Option<T>{ None, Some(T), }可以Unwrapping在Option上解压pub enum Result<T, E> { Ok(T), Err(E), }
- Result
Option和resutl
- 可以组合
- 通过ok_or和ok转换
及早返回?:任何一个失败就整体失败了
不可恢复异常painc
- catch_unwind处理故障,只是停止展开栈,不能阻止程序终止运行的故障
自定义错误和Error特征
代码语言:rust复制use std::panic;
fn main() {
let ret1:Result<_,()> = Ok(64);
let ok1 = Ok::<_,()>(64);
let err1 = Err::<(),f32>(123.4);
panic::catch_unwind(|| {
panic!("Panicking!");
}).ok();
println!("Survived that panic.");
}