Add examples for std::Error module
This commit is contained in:
parent
46e7f4b8c5
commit
e634d21ba9
|
@ -66,10 +66,80 @@ pub trait Error: Debug + Display + Reflect {
|
||||||
/// The description should not contain newlines or sentence-ending
|
/// The description should not contain newlines or sentence-ending
|
||||||
/// punctuation, to facilitate embedding in larger user-facing
|
/// punctuation, to facilitate embedding in larger user-facing
|
||||||
/// strings.
|
/// 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")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
fn description(&self) -> &str;
|
fn description(&self) -> &str;
|
||||||
|
|
||||||
/// The lower-level cause of this error, if any.
|
/// 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")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
fn cause(&self) -> Option<&Error> { None }
|
fn cause(&self) -> Option<&Error> { None }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue