# Trait ethcore_util::standard::StdError 1.0.0 [−] [src]

    pub trait StdError: Debug + Display {
        fn description(&self) -> &str;

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

Base functionality for all errors in Rust.

## Required Methods

### `fn description(&self) -> &str`

A short description of the error.

The description should only be used for a simple message. It should not contain newlines or sentence-ending punctuation, to facilitate embedding in larger user-facing strings. For showing formatted error messages with more information see `Display`.

# Examples

    use std::error::Error;

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

## Provided Methods

### `fn cause(&self) -> Option<&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`

#### `fn is<T>(&self) -> bool where T: 'static + Error`
1.3.0

Returns true if the boxed type is the same as `T`

#### `fn downcast_ref<T>(&self) -> Option<&T> where T: 'static + Error`
1.3.0

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

#### `fn downcast_mut<T>(&mut self) -> Option<&mut T> where T: 'static + Error`
1.3.0

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

### `impl Error + 'static + Send`

#### `fn is<T>(&self) -> bool where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

#### `fn downcast_ref<T>(&self) -> Option<&T> where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

#### `fn downcast_mut<T>(&mut self) -> Option<&mut T> where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

### `impl Error + 'static + Send + Sync`

#### `fn is<T>(&self) -> bool where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

#### `fn downcast_ref<T>(&self) -> Option<&T> where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

#### `fn downcast_mut<T>(&mut self) -> Option<&mut T> where T: 'static + Error`
1.3.0

Forwards to the method defined on the type `Any`.

### `impl Error + 'static`

#### `fn downcast<T>(self: Box<Error + 'static>)
-> Result<Box<T>, Box<Error + 'static>> where T: 'static + Error`
1.3.0

Attempt to downcast the box to a concrete type.

### `impl Error + 'static + Send`

#### `fn downcast<T>(self: Box<Error + 'static + Send>)
-> Result<Box<T>, Box<Error + 'static + Send>> where T: 'static + Error`
1.3.0

Attempt to downcast the box to a concrete type.

### `impl Error + 'static + Send + Sync`

#### `fn downcast<T>(self: Box<Error + 'static + Send + Sync>)
-> Result<Box<T>, Box<Error + 'static + Send + Sync>> where T: 'static + Error`
1.3.0

Attempt to downcast the box to a concrete type.

## Implementors

- `impl Error for Error`
- `impl Error for Error`
- `impl Error for DecoderError`
- `impl Error for OutOfRangeError`
- `impl Error for ParseError`
- `impl Error for VarError`
- `impl Error for JoinPathsError`
- `impl Error for ParseBoolError`
- `impl Error for Utf8Error`
- `impl Error for ParseIntError`
- `impl Error for TryFromIntError`
- `impl Error for ParseFloatError`
- `impl Error for FromUtf8Error`
- `impl Error for FromUtf16Error`
- `impl Error for ParseError`
- `impl Error for DecodeUtf16Error`
- `impl<T> Error for Box<T> where T: Error`
- `impl Error for Error`
- `impl Error for BorrowError`
- `impl Error for BorrowMutError`
- `impl Error for CharTryFromError`
- `impl Error for NulError`
- `impl Error for IntoStringError`
- `impl<W> Error for IntoInnerError<W> where W: Send + Debug`
- `impl Error for Error`
- `impl Error for CharsError`
- `impl Error for AddrParseError`
- `impl Error for StripPrefixError`
- `impl<T> Error for SendError<T> where T: Send`
- `impl<T> Error for TrySendError<T> where T: Send`
- `impl Error for RecvError`
- `impl Error for TryRecvError`
- `impl Error for SystemTimeError`
- `impl<T> Error for PoisonError<T>`
- `impl<T> Error for TryLockError<T>`
- `impl Error for Error`
- `impl<T> Error for CapacityError<T> where T: Any`
- `impl Error for FromBase64Error`
- `impl Error for FromHexError`
- `impl Error for DecoderError`
- `impl Error for ParserError`
- `impl Error for EncoderError`
- `impl Error for SetLoggerError`
- `impl Error for ShutdownLoggerError`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)