當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Error用法及代碼示例


本文簡要介紹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-lang.org大神的英文原創作品 Trait std::error::Error。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。