是否有一种宏,类似于try
宏,可以将错误转换为紧急情况?我需要定义自己的宏吗?
例如,当单元测试无法打开文件时,我希望发生紧急情况。目前的解决方法是:
macro_rules! tryfail {
($expr:expr) => (match $expr {
result::Result::Ok(val) => val,
result::Result::Err(_) => panic!(stringify!($expr))
})
}
#[test]
fn foo() {
let c = tryfail!(File::open(...));
}