我有一个包含错误恢复逻辑和最后
任何想法让它工作吗? 游乐场
process::exit(0)
的函数:fn gracefully_shutdown() {
// Do some logic for the recover
process::exit(7);
}
在错误情况下,我想调用那个函数,但match
却抱怨不兼容的分支
。 但是,当我显式地将它写入匹配分支时,它并不会抱怨,就像以下代码一样:
fn handle_result(my_result: Result<i32, MyError>) -> i32 {
match my_result {
Ok(val) => val,
//Err(_error) => { process::exit(0); } // Does not complain
Err(_error) => {
gracefully_shutdown();
} // Does complain
}
}
编译器难以理解gracefully_shutdown()
函数内部包含process::exit(0)
吗?
我希望我的代码可以这样写:
fn handle_result(my_result: Result<i32, MyError>) -> i32 {
match my_result {
Ok(val) => val,
Err(_error) => {
gracefully_shutdown();
}
}
}
任何想法让它工作吗? 游乐场