本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。