1
我在一个单独的线程中运行一些代码:的std ::结果::结果恐慌登录
fn f1() -> Result<(), String> { Err("err1".to_string()) }
fn f2() -> Result<(), String> { Err("err2".to_string()) }
::std::thread::spawn(move || {
f1().expect("f1 failed");
f2().expect("f2 failed");
});
也是我用log crate的记录。
因为我想要panic!
拨打error!
而不是print!
。
我发现panic hook,但我不这样类似的代码unwrap
:
panic::set_hook(Box::new(|panic_info| {
error!("panic occured: {:?}", panic_info.payload().downcast_ref::<&str>().unwrap());
}));
,我很担心:
这将常见的,但并非总是如此,是
&'static str
或String
但是不会downcast
总是成功吗?