std::error::Error - Rust (original) (raw)
Trait std::error::Error1.0.0 [−] [src]
pub trait Error: Debug + Display { fn description(&self) -> &str;
fn [cause](#method.cause)(&self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<&[Error](../../std/error/trait.Error.html "trait std::error::Error")> { ... }
}
Base functionality for all errors in Rust.
fn [description](#tymethod.description)(&self) -> &[str](../primitive.str.html)
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 seeDisplay.
use std::error::Error;
match "xc".parse::() { Err(e) => { println!("Error: {}", e.description()); } _ => println!("No error"), }Run
fn [cause](#method.cause)(&self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<&[Error](../../std/error/trait.Error.html "trait std::error::Error")>
The lower-level cause of this error, if any.
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"), } }Run
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static
[src]
pub fn [is](#method.is)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [bool](../primitive.bool.html)
1.3.0
Returns true if the boxed type is the same as T
pub fn [downcast_ref](#method.downcast%5Fref)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&](../primitive.reference.html)T>
1.3.0
Returns some reference to the boxed value if it is of type T
, orNone
if it isn't.
pub fn [downcast_mut](#method.downcast%5Fmut)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&mut self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&mut ](../primitive.reference.html)T>
1.3.0
Returns some mutable reference to the boxed value if it is of type T
, orNone
if it isn't.
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") + [Send](../../std/marker/trait.Send.html "trait std:📑:Send") + 'static
[src]
pub fn [is](#method.is-1)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [bool](../primitive.bool.html)
1.3.0
Forwards to the method defined on the type Any
.
pub fn [downcast_ref](#method.downcast%5Fref-1)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&](../primitive.reference.html)T>
1.3.0
Forwards to the method defined on the type Any
.
pub fn [downcast_mut](#method.downcast%5Fmut-1)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&mut self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&mut ](../primitive.reference.html)T>
1.3.0
Forwards to the method defined on the type Any
.
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") + [Send](../../std/marker/trait.Send.html "trait std:📑:Send") + [Sync](../../std/marker/trait.Sync.html "trait std:📑:Sync") + 'static
[src]
pub fn [is](#method.is-2)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [bool](../primitive.bool.html)
1.3.0
Forwards to the method defined on the type Any
.
pub fn [downcast_ref](#method.downcast%5Fref-2)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&](../primitive.reference.html)T>
1.3.0
Forwards to the method defined on the type Any
.
pub fn [downcast_mut](#method.downcast%5Fmut-2)<T: [Error](../../std/error/trait.Error.html "trait std::error::Error") + 'static>(&mut self) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[&mut ](../primitive.reference.html)T>
1.3.0
Forwards to the method defined on the type Any
.
impl [Error](../../std/error/trait.Error.html "trait std::error::Error")
[src]
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") + [Send](../../std/marker/trait.Send.html "trait std:📑:Send")
[src]
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") + [Send](../../std/marker/trait.Send.html "trait std:📑:Send") + [Sync](../../std/marker/trait.Sync.html "trait std:📑:Sync")
[src]
`pub fn downcast<T: Error + 'static>(
self: Box
) -> Result<Box, Box>`
1.3.0
Attempt to downcast the box to a concrete type.
impl [Error](../../std/error/trait.Error.html "trait std::error::Error") for [TryFromSliceError](../../core/array/struct.TryFromSliceError.html "struct core::array::TryFromSliceError")
[src]
impl Error for [VarError](../../std/env/enum.VarError.html "enum std::env::VarError")
impl Error for [JoinPathsError](../../std/env/struct.JoinPathsError.html "struct std::env::JoinPathsError")
impl Error for [!](../primitive.never.html)
impl Error for [AllocErr](../../std/heap/enum.AllocErr.html "enum std::heap::AllocErr")
impl Error for [CannotReallocInPlace](../../std/heap/struct.CannotReallocInPlace.html "struct std::heap::CannotReallocInPlace")
impl Error for [ParseBoolError](../../std/str/struct.ParseBoolError.html "struct std::str::ParseBoolError")
impl Error for [Utf8Error](../../std/str/struct.Utf8Error.html "struct std::str::Utf8Error")
impl Error for [ParseIntError](../../std/num/struct.ParseIntError.html "struct std::num::ParseIntError")
impl Error for [TryFromIntError](../../std/num/struct.TryFromIntError.html "struct std::num::TryFromIntError")
impl Error for [ParseFloatError](../../std/num/struct.ParseFloatError.html "struct std::num::ParseFloatError")
impl Error for [FromUtf8Error](../../std/string/struct.FromUtf8Error.html "struct std:🧵:FromUtf8Error")
impl Error for [FromUtf16Error](../../std/string/struct.FromUtf16Error.html "struct std:🧵:FromUtf16Error")
impl Error for [ParseError](../../std/string/enum.ParseError.html "enum std:🧵:ParseError")
impl Error for [DecodeUtf16Error](../../std/char/struct.DecodeUtf16Error.html "struct std::char::DecodeUtf16Error")
impl<T: [Error](../../std/error/trait.Error.html "trait std::error::Error")> Error for [Box](../../std/boxed/struct.Box.html "struct std::boxed::Box")<T>
impl Error for std::fmt::[Error](../../std/fmt/struct.Error.html "struct std::fmt::Error")
impl Error for [BorrowError](../../std/cell/struct.BorrowError.html "struct std::cell::BorrowError")
impl Error for [BorrowMutError](../../std/cell/struct.BorrowMutError.html "struct std::cell::BorrowMutError")
impl Error for [CharTryFromError](../../std/char/struct.CharTryFromError.html "struct std::char::CharTryFromError")
impl Error for [ParseCharError](../../std/char/struct.ParseCharError.html "struct std::char::ParseCharError")
impl Error for [Infallible](../../std/convert/enum.Infallible.html "enum std::convert::Infallible")
impl Error for [NulError](../../std/ffi/struct.NulError.html "struct std::ffi::NulError")
impl Error for [FromBytesWithNulError](../../std/ffi/struct.FromBytesWithNulError.html "struct std::ffi::FromBytesWithNulError")
impl Error for [IntoStringError](../../std/ffi/struct.IntoStringError.html "struct std::ffi::IntoStringError")
impl<W: [Send](../../std/marker/trait.Send.html "trait std:📑:Send") + [Debug](../../std/fmt/trait.Debug.html "trait std::fmt::Debug")> Error for [IntoInnerError](../../std/io/struct.IntoInnerError.html "struct std::io::IntoInnerError")<W>
impl Error for std::io::[Error](../../std/io/struct.Error.html "struct std::io::Error")
impl Error for [CharsError](../../std/io/enum.CharsError.html "enum std::io::CharsError")
impl Error for [AddrParseError](../../std/net/struct.AddrParseError.html "struct std:🥅:AddrParseError")
impl Error for [StripPrefixError](../../std/path/struct.StripPrefixError.html "struct std::path::StripPrefixError")
impl<T: [Send](../../std/marker/trait.Send.html "trait std:📑:Send")> Error for [SendError](../../std/sync/mpsc/struct.SendError.html "struct std::sync::mpsc::SendError")<T>
impl<T: [Send](../../std/marker/trait.Send.html "trait std:📑:Send")> Error for [TrySendError](../../std/sync/mpsc/enum.TrySendError.html "enum std::sync::mpsc::TrySendError")<T>
impl Error for [RecvError](../../std/sync/mpsc/struct.RecvError.html "struct std::sync::mpsc::RecvError")
impl Error for [TryRecvError](../../std/sync/mpsc/enum.TryRecvError.html "enum std::sync::mpsc::TryRecvError")
impl Error for [RecvTimeoutError](../../std/sync/mpsc/enum.RecvTimeoutError.html "enum std::sync::mpsc::RecvTimeoutError")
impl Error for [SystemTimeError](../../std/time/struct.SystemTimeError.html "struct std::time::SystemTimeError")
impl<T> Error for [PoisonError](../../std/sync/struct.PoisonError.html "struct std::sync::PoisonError")<T>
impl<T> Error for [TryLockError](../../std/sync/enum.TryLockError.html "enum std::sync::TryLockError")<T>