Exception 類別和屬性

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

Object
  Exception
    SystemException
      InvalidCastException

Exception 類別具有下列屬性,讓您更容易了解例外狀況。

屬性名稱 描述
Data IDictionary 會將任意資料保存在索引鍵/值組。
HelpLink 可保留說明檔的 URL (或 URN),以提供有關例外狀況原因的廣泛資訊。
InnerException 您可以在例外狀況處理期間,使用此屬性來建立及保留一系列的例外狀況。 您可以使用此屬性來建立新的例外狀況,其中包含先前攔截例外狀況。 InnerException 屬性中的第二個例外狀況可以擷取原始的例外狀況,讓程式碼可以處理第二個例外狀況,以檢視其他額外的資訊。 例如,假設您有一個方法會接收格式不正確的引數。 此程式碼會嘗試讀取引數,但擲回例外狀況。 此方法會攔截例外狀況並擲回 FormatException。 為了改善呼叫端判斷所擲回例外狀況原因的能力,有時需要讓方法攔截 Helper 常式所擲回的例外狀況,再擲回更清楚指出所發生錯誤的例外狀況。 您可以建立全新且更有意義的例外狀況,其中的內部例外狀況參考可設定為原始例外狀況。 這個更有意義的例外狀況接著會擲回給呼叫端。 請注意,透過這項功能,您可以建立一系列的連結例外狀況,每個例外狀況後面接著先前擲回的例外狀況。
Message 提供有關例外狀況原因的詳細資料。
Source 取得或設定造成錯誤的應用程式或物件的名稱。
StackTrace 包含可用來判斷發生錯誤位置的堆疊追蹤。 堆疊追蹤包括原始程式檔名稱和程式行號 (若有偵錯資訊的話)。

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

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

另請參閱