jus*_*ase 1 error-handling rust
我正在调用一个返回 a 的函数Result<T, E>,并且我想处理这种Ok情况,但Err如果返回错误则按原样返回。最干净的方法是什么?
例如,我有:
fn example() -> Result<(), Error> {
match foo() {
Ok(v) => bar(v),
Err(e) => Err(e),
}
}
Run Code Online (Sandbox Code Playgroud)
写这个有哪些替代形式?在堆栈中的每次调用中重新包装e另一个感觉很奇怪。Err另外,每个调用基本上都是 4 行样板文件......我只是在寻找一种方法来简化并使其更具可读性。我的愿望是让它在出现错误时返回错误,否则处理结果值。
小智 6
Rust 包含一个“错误传播”运算符?. Result如果调用它的值是,Ok它将解开并返回内部值。如果值为 ,Err它将从函数返回并将 传递Err给调用者。
fn example() -> Result<(), Error> {
let v = foo()?;
bar(v);
}
Run Code Online (Sandbox Code Playgroud)