本文简要介绍rust语言中 Trait std::error::Error
的用法。
用法
pub trait Error: Debug + Display {
fn source(&self) -> Option<&(dyn Error + 'static)> { ... }
fn backtrace(&self) -> Option<&Backtrace> { ... }
fn description(&self) -> &str { ... }
fn cause(&self) -> Option<&dyn Error> { ... }
}
Error
是表示对错误值的基本期望的特征,即 Result<T, E>
中类型为 E
的值。
错误必须通过 Display
和 Debug
特征说明自己。错误消息通常是简洁的小写句子,没有尾随标点符号:
let err = "NaN".parse::<u32>().unwrap_err();
assert_eq!(err.to_string(), "invalid digit found in string");
错误可能会提供原因链信息。 Error::source()
通常在错误跨越 “abstraction boundaries” 时使用。如果一个模块必须报告由 lower-level 模块的错误引起的错误,它可以允许通过 Error::source()
访问该错误。这使得高级模块可以提供自己的错误,同时还可以通过source
链揭示一些用于调试的实现。
相关用法
- Rust Error.source用法及代码示例
- Rust Error.last_os_error用法及代码示例
- Rust Error.chain用法及代码示例
- Rust Error.description用法及代码示例
- Rust Error.kind用法及代码示例
- Rust Error.from_raw_os_error用法及代码示例
- Rust Error.get_ref用法及代码示例
- Rust Error用法及代码示例
- Rust Error.into_inner用法及代码示例
- Rust Error.new用法及代码示例
- Rust Error.get_mut用法及代码示例
- Rust Error.raw_os_error用法及代码示例
- Rust Entry.or_insert_with用法及代码示例
- Rust ExitStatus.code用法及代码示例
- Rust Eq用法及代码示例
- Rust Entry.or_insert用法及代码示例
- Rust ExactSizeIterator.is_empty用法及代码示例
- Rust Extend.extend用法及代码示例
- Rust Entry.and_modify用法及代码示例
- Rust ExitStatusError.code用法及代码示例
- Rust ExactSizeIterator用法及代码示例
- Rust ExitStatusError用法及代码示例
- Rust ExitStatus.exit_ok用法及代码示例
- Rust Entry.or_insert_with_key用法及代码示例
- Rust Entry.key用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait std::error::Error。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。