rust的错误处理

2022-05-09 22:45:11 浏览数 (2)

错误处理

  • 返回代码
  • 异常处理

可恢复的异常

  • 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."); 

}

0 人点赞