本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

Exception.InnerException 屬性

 

取得造成目前例外狀況的 Exception 執行個體。

命名空間:   System
組件:  mscorlib (於 mscorlib.dll)

public Exception InnerException { get; }

屬性值

Type: System.Exception

物件,描述造成目前例外狀況的錯誤。 InnerException 屬性會傳回與傳遞到 Exception(String, Exception) 建構函式中相同的值;如果沒有提供內部例外狀況值給建構函式,則傳回 null 這個屬性是唯讀的。

例外狀況時X做為前一個例外狀況直接結果擲回YInnerException屬性X應該包含參考Y

您可以使用 InnerException 屬性來取得造成目前例外狀況的例外狀況集合。

您可以建立新的例外狀況,以攔截先前的例外狀況。 處理第二個例外狀況可以使用從先前的例外狀況的其他資訊以更適當地處理錯誤程式碼。

假設有讀取檔案,並將該檔案中的資料格式的函式。 在此範例中,為程式碼嘗試讀取檔案,IOException就會擲回。 此函式攔截IOException並擲回FileNotFoundException IOException無法儲存在InnerException屬性FileNotFoundException,啟用程式碼攔截FileNotFoundException檢查初始錯誤的原因。

InnerException 屬性,其中包含內部例外狀況的參考,例外狀況物件的初始設定。

下列範例示範擲回和攔截例外狀況參考內部的例外狀況。

using System;

public class AppException : Exception
{
   public AppException(String message) : base (message)
   {}

   public AppException(String message, Exception inner) : base(message,inner) {}
}

public class Example
{
   public static void Main()
   {
      Example ex = new Example();

      try {
         ex.CatchInner();
      }
      catch(AppException e) {
         Console.WriteLine ("In catch block of Main method.");
         Console.WriteLine("Caught: {0}", e.Message);
         if (e.InnerException != null)
            Console.WriteLine("Inner exception: {0}", e.InnerException);
      }
   }

   public void ThrowInner ()
   {
      throw new AppException("Exception in ThrowInner method.");
   }

   public void CatchInner() 
   {
      try {
         this.ThrowInner();
      }
      catch (AppException e) {
         throw new AppException("Error in CatchInner caused by calling the ThrowInner method.", e);
      }
   }
}
// The example displays the following output:
//    In catch block of Main method.
//    Caught: Error in CatchInner caused by calling the ThrowInner method.
//    Inner exception: AppException: Exception in ThrowInner method.
//       at Example.CatchInner()

通用 Windows 平台
自 8 起供應
.NET Framework
自 1.1 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
Windows Phone
自 8.1 起供應
回到頁首
顯示: