@@ -33,15 +33,22 @@ use crate::string;
33
33
use crate :: sync:: Arc ;
34
34
35
35
/// `Error` is a trait representing the basic expectations for error values,
36
- /// i.e., values of type `E` in [`Result<T, E>`]. Errors must describe
37
- /// themselves through the [`Display`] and [`Debug`] traits, and may provide
38
- /// cause chain information:
36
+ /// i.e., values of type `E` in [`Result<T, E>`].
39
37
///
40
- /// [`Error::source()`] is generally used when errors cross
41
- /// "abstraction boundaries". If one module must report an error that is caused
42
- /// by an error from a lower-level module, it can allow accessing that error
43
- /// via [`Error::source()`]. This makes it possible for the high-level
44
- /// module to provide its own errors while also revealing some of the
38
+ /// Errors must describe themselves through the [`Display`] and [`Debug`]
39
+ /// traits. Error messages are typically concise lowercase sentences without
40
+ /// trailing punctuation:
41
+ ///
42
+ /// ```
43
+ /// let err = "NaN".parse::<u32>().unwrap_err();
44
+ /// assert_eq!(err.to_string(), "invalid digit found in string");
45
+ /// ```
46
+ ///
47
+ /// Errors may provide cause chain information. [`Error::source()`] is generally
48
+ /// used when errors cross "abstraction boundaries". If one module must report
49
+ /// an error that is caused by an error from a lower-level module, it can allow
50
+ /// accessing that error via [`Error::source()`]. This makes it possible for the
51
+ /// high-level module to provide its own errors while also revealing some of the
45
52
/// implementation for debugging via `source` chains.
46
53
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
47
54
pub trait Error : Debug + Display {
0 commit comments