macro_rules! bail { ($e:expr) => { ... }; ($fmt:expr, $($arg:tt)+) => { ... }; }
Expand description
Exits a function early with an error
The bail!
macro provides an easy way to exit a function.
bail!(expr)
is equivalent to writing.
return Err(expr.into());
And as shorthand it takes a formatting string a la println!
:
bail!("bad number: {}", n);
ยงExamples
Bailing on a custom error:
error_chain! {
errors { FooError }
}
fn foo() -> Result<()> {
if bad_condition() {
bail!(ErrorKind::FooError);
}
Ok(())
}
Bailing on a formatted string:
error_chain! { }
fn foo() -> Result<()> {
if let Some(bad_num) = bad_condition() {
bail!("so bad: {}", bad_num);
}
Ok(())
}