我目前有以下代码来处理不想传播或继续函数的错误情况。这种情况是Web服务器控制器的用例,我更喜欢手动处理可能出现的错误-这就是为什么返回类型是HttpResponse
的原因。
我想知道是否有一种方法可以在没有unwrap
调用的情况下完成此操作,因为据我所知,在此时编译器应该知道有一种方法可以解包到一个值,而没有恐慌的风险。
// ...
let result: Result<u8, Error> = func_that_could_error();
if result.is_err() {
return HttpResponse::InternalServerError();
}
let value: u8 = result.unwrap();
// ...
let value = result.map_err (|_| HttpResponse::InternalServerError())?;
- JmbHttpResponse::InternalServerError()
),否则将v
的值赋给value
变量。 - Jmb