Trait xmz_server::prelude::Error1.0.0[][src]

pub trait Error: Debug + Display {
    fn description(&self) -> &str { ... }
fn cause(&self) -> Option<&Error> { ... } }

Error is a trait representing the basic expectations for error values, i.e. values of type E in Result<T, E>. Errors must describe themselves through the Display and [Debug] traits, and may provide cause chain information:

The cause method is generally used when errors cross "abstraction boundaries", i.e. when a one module must report an error that is "caused" by an error from a lower-level module. This setup makes it possible for the high-level module to provide its own errors that do not commit to any particular implementation, but also reveal some of its implementation for debugging via cause chains.

Provided Methods

This method is soft-deprecated.

Although using it won’t cause compilation warning, new code should use Display instead and new impls can omit it.

To obtain error description as a string, use to_string().

Examples

match "xc".parse::<u32>() {
    Err(e) => {
        // Print `e` itself, not `e.description()`.
        println!("Error: {}", e);
    }
    _ => println!("No error"),
}

The lower-level cause of this error, if any.

Examples

use std::error::Error;
use std::fmt;

#[derive(Debug)]
struct SuperError {
    side: SuperErrorSideKick,
}

impl fmt::Display for SuperError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "SuperError is here!")
    }
}

impl Error for SuperError {
    fn description(&self) -> &str {
        "I'm the superhero of errors"
    }

    fn cause(&self) -> Option<&Error> {
        Some(&self.side)
    }
}

#[derive(Debug)]
struct SuperErrorSideKick;

impl fmt::Display for SuperErrorSideKick {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "SuperErrorSideKick is here!")
    }
}

impl Error for SuperErrorSideKick {
    fn description(&self) -> &str {
        "I'm SuperError side kick"
    }
}

fn get_super_error() -> Result<(), SuperError> {
    Err(SuperError { side: SuperErrorSideKick })
}

fn main() {
    match get_super_error() {
        Err(e) => {
            println!("Error: {}", e.description());
            println!("Caused by: {}", e.cause().unwrap());
        }
        _ => println!("No error"),
    }
}

Methods

impl Error + 'static
[src]

Returns true if the boxed type is the same as T

Returns some reference to the boxed value if it is of type T, or None if it isn't.

Returns some mutable reference to the boxed value if it is of type T, or None if it isn't.

impl Error + 'static + Send
[src]

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

impl Error + 'static + Sync + Send
[src]

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

impl Error + 'static
[src]

Attempt to downcast the box to a concrete type.

impl Error + 'static + Send
[src]

Attempt to downcast the box to a concrete type.

impl Error + 'static + Sync + Send
[src]

Attempt to downcast the box to a concrete type.

Trait Implementations

impl Trait for Error + 'static + Send
[src]

impl Trait for Error + 'static + Sync
[src]

impl Trait for Error + 'static + Sync + Send
[src]

Implementations on Foreign Types

impl Error for TryFromSliceError
[src]

impl Error for ParseFloatError
[src]

impl Error for JoinPathsError
[src]

impl<T> Error for Box<T> where
    T: Error
[src]

impl<T> Error for TrySendError<T> where
    T: Send
[src]

impl Error for RecvError
[src]

impl Error for CharsError
[src]

impl Error for CannotReallocInPlace
[src]

impl Error for ParseBoolError
[src]

impl Error for BorrowMutError
[src]

impl<W> Error for IntoInnerError<W> where
    W: Send + Debug
[src]

impl Error for IntoStringError
[src]

impl<T> Error for PoisonError<T>
[src]

impl Error for RecvTimeoutError
[src]

impl Error for !
[src]

impl Error for ParseCharError
[src]

impl Error for FromUtf8Error
[src]

impl Error for FromUtf16Error
[src]

impl Error for TryRecvError
[src]

impl Error for LayoutErr
[src]

impl Error for CharTryFromError
[src]

impl Error for TryFromIntError
[src]

impl Error for Error
[src]

impl Error for ParseError
[src]

impl Error for VarError
[src]

impl Error for ParseIntError
[src]

impl<T> Error for TryLockError<T>
[src]

impl Error for AddrParseError
[src]

impl Error for DecodeUtf16Error
[src]

impl Error for NulError
[src]

impl Error for BorrowError
[src]

impl<T> Error for SendError<T> where
    T: Send
[src]

impl Error for FromBytesWithNulError
[src]

impl Error for Utf8Error
[src]

impl Error for AllocErr
[src]

impl Error for SystemTimeError
[src]

impl Error for StripPrefixError
[src]

impl Error for Error
[src]

impl Error for Error
[src]

impl Error for DatetimeParseError
[src]

impl Error for Error
[src]

impl Error for Error
[src]

impl Error for SetLoggerError
[src]

impl Error for ParseLevelError
[src]

impl Error for ErrorKind
[src]

impl Error for TimerError
[src]

impl Error for LaunchError
[src]

impl Error for ConfigError
[src]

impl Error for SetLoggerError
[src]

impl Error for ShutdownLoggerError
[src]

impl Error for Error
[src]

impl Error for DecodeError
[src]

impl Error for OutOfRangeError
[src]

impl Error for ParseError
[src]

impl Error for ParseError
[src]

impl Error for Error
[src]

impl Error for Error
[src]

impl Error for ParseError
[src]

impl Error for Unspecified
[src]

impl Error for DecodeError
[src]

impl Error for Error
[src]

Implementors