pub struct Error {
pub message: Cow<'static, str>,
pub source: Option<Box<dyn StdError + Send + Sync + 'static>>,
pub location: Option<&'static Location<'static>>,
}Expand description
A convenient, ready-to-use error type with built-in context support.
Error can be used directly without defining custom error types.
It stores an error message, optional source error, and optional location.
§Example
use scoped_error::Error;
fn fallible() -> Result<(), Error> {
// &str or String can be converted to Error
Err(Error::new("Something went wrong"))
}Fields§
§message: Cow<'static, str>The error message.
source: Option<Box<dyn StdError + Send + Sync + 'static>>The underlying error that caused this one.
location: Option<&'static Location<'static>>The location where this error was created.
Implementations§
Source§impl Error
impl Error
Sourcepub fn new(msg: impl Into<Cow<'static, str>>) -> Error
pub fn new(msg: impl Into<Cow<'static, str>>) -> Error
Create a new Error with the given message.
The source and location are initially None.
Examples found in repository?
examples/multi.rs (line 20)
19fn fetch(url: &str) -> Result<String, scoped_error::Error> {
20 let err = || scoped_error::Error::new(format!("failed to fetch {}", url));
21
22 expect_error_fn(err, || {
23 connect(url)?;
24 Ok("connected".into())
25 })
26}
27
28fn connect(url: &str) -> Result<String, scoped_error::Error> {
29 let err = || scoped_error::Error::new(format!("failed to connect to {}", url));
30
31 expect_error_fn(err, || Err("no network connection")?)
32}Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn StdError + 'static)>
fn source(&self) -> Option<&(dyn StdError + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for Error
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
impl !UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> ErrorExt for Twhere
T: Error + 'static,
impl<T> ErrorExt for Twhere
T: Error + 'static,
Source§fn report(&self) -> ErrorReport<'_>
fn report(&self) -> ErrorReport<'_>
Generate a formatted error report for this error. Read more