共用方式為


例外狀況類別和屬性

類別 Exception 是繼承例外狀況的基類。 例如,類別 InvalidCastException 階層如下所示:

Object
  Exception
    SystemException
      InvalidCastException

類別 Exception 具有下列屬性,可協助更輕鬆地瞭解例外狀況。

屬性名稱 說明
Data IDictionary,用於存儲索引鍵/值對中的任意資料。
HelpLink 可以保存 URL(或 URN)至說明檔,以提供例外狀況原因的詳細資訊。
InnerException 這個屬性可用來在例外狀況處理期間建立及保留一系列例外狀況。 您可以使用它來建立包含先前攔截例外狀況的新例外狀況。 原始例外狀況可由 屬性中的 InnerException 第二個例外狀況擷取,讓處理第二個例外狀況的程式代碼檢查其他資訊。 例如,假設您有一個方法可以接收格式不正確的參數。 程式嘗試讀取參數,但拋出例外。 方法會攔截例外狀況並擲回 FormatException。 為了改善呼叫端判斷擲回例外狀況原因的能力,有時候希望方法進行攔截協助例程擲回的例外狀況,然後擲回能更明確指出所發生錯誤的例外狀況。 您可以建立新的且更有意義的例外狀況,其中內部例外狀況參考可以設定為原始例外狀況。 然後,這個更有意義的例外狀況可以擲回給呼叫端。 請注意,使用這項功能,您可以建立一系列連結的例外狀況,以先擲回的例外狀況結尾。
Message 提供有關例外狀況原因的詳細數據。
Source 取得或設定造成錯誤之應用程式或物件的名稱。
StackTrace 包含堆疊追蹤,可用來判斷發生錯誤的位置。 如果偵錯資訊可用,堆疊追蹤會包含來源檔名和程式行號。

繼承自 Exception 的大多數類別不會實作其他成員或提供其他功能;它們只會繼承自 Exception。 因此,例外狀況的最重要資訊可以在例外狀況類別的階層、例外狀況名稱,以及例外狀況中包含的資訊中找到。

我們建議您只擲回和攔截衍生自 Exception的物件,但您可以擲回任何衍生自 Object 類別的對象作為例外狀況。 請注意,並非所有語言都支援擲出和攔截不是衍生自 Exception 的物件。

另請參閱