diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-07-12 12:08:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-12 12:08:24 +0200 |
| commit | 1958e39ccada4cf0beb10d37bf2e2dcaf1362371 (patch) | |
| tree | 379f8afb358b7213ddf6385d8843397cec4e509b /src | |
| parent | ea6cb8744ac951a5f59cf38ea8d6515a67aedfee (diff) | |
| parent | e634d21ba95e8bf0ef78e34f9bd1c77c1ce48adc (diff) | |
| download | rust-1958e39ccada4cf0beb10d37bf2e2dcaf1362371.tar.gz rust-1958e39ccada4cf0beb10d37bf2e2dcaf1362371.zip | |
Rollup merge of #34750 - GuillaumeGomez:error_doc, r=steveklabnik
Add examples for std::Error module Fixes #29352. r? @steveklabnik
Diffstat (limited to 'src')
| -rw-r--r-- | src/libstd/error.rs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/libstd/error.rs b/src/libstd/error.rs index 2a2d41112ff..1459420cdc0 100644 --- a/src/libstd/error.rs +++ b/src/libstd/error.rs @@ -66,10 +66,80 @@ pub trait Error: Debug + Display + Reflect { /// The description should not contain newlines or sentence-ending /// punctuation, to facilitate embedding in larger user-facing /// strings. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// + /// match "xc".parse::<u32>() { + /// Err(e) => { + /// println!("Error: {}", e.description()); + /// } + /// _ => println!("No error"), + /// } + /// ``` #[stable(feature = "rust1", since = "1.0.0")] fn description(&self) -> &str; /// 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"), + /// } + /// } + /// ``` #[stable(feature = "rust1", since = "1.0.0")] fn cause(&self) -> Option<&Error> { None } |
