189
The ???? operator
(programming.dev)
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Credits
If all you do in the
Err(e) => ...
match arm is returning the error, then you absolutely should use the?
operator instead.If the match arm also converts the error type into another error type, implement the
From
trait for the conversion, then you can use?
as well.If you want to add more information to the error, you can use
.map_err(...)?
. Or, if you're using theanyhow
crate,.with_context(...)?
.You can also do
map_err
, which is a bit cleaner while keeping the mapping obvious. If you really need to do some logic on error, extracting that to the calling function is often better.