macro_rules! anyhow {
    ($msg:literal $(,)?) => { ... };
    ($err:expr $(,)?) => { ... };
    ($fmt:expr, $($arg:tt)*) => { ... };
}
Expand description

Construct an ad-hoc error from a string or existing non-anyhow error value.

This evaluates to an Error. It can take either just a string, or a format string with arguments. It also can take any custom type which implements Debug and Display.

If called with a single argument whose type implements std::error::Error (in addition to Debug and Display, which are always required), then that Error impl’s source is preserved as the source of the resulting anyhow::Error.

Example

use anyhow::{anyhow, Result};

fn lookup(key: &str) -> Result<V> {
    if key.len() != 16 {
        return Err(anyhow!("key length must be 16 characters, got {:?}", key));
    }

    // ...
}