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(())
}