Exception.InnerException Özellik

Tanım

Exception Geçerli özel duruma neden olan örneği alır.

C#
public Exception InnerException { get; }
C#
public Exception? InnerException { get; }

Özellik Değeri

Exception

Geçerli özel duruma neden olan hatayı açıklayan nesne. InnerException özelliği, oluşturucuya Exception(String, Exception) geçirildiği gibi veya null iç özel durum değeri oluşturucuya sağlanmadıysa aynı değeri döndürür. Bu özellik salt okunur durumdadır.

Uygulamalar

Örnekler

Aşağıdaki örnek, iç özel duruma başvuran bir özel durum oluşturma ve yakalamayı gösterir.

C#
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.ThrowInner()
//       at Example.CatchInner()

Açıklamalar

Bir özel durum önceki bir özel durumun X doğrudan sonucu olarak oluşturulduğunda, özelliğinin X InnerException öğesine bir başvuru Yiçermesi Ygerekir.

InnerException Geçerli özel duruma yol açan özel durumlar kümesini almak için özelliğini kullanın.

Önceki bir özel durumu yakalayan yeni bir özel durum oluşturabilirsiniz. İkinci özel durumu işleyen kod, hatayı daha uygun şekilde işlemek için önceki özel durumdaki ek bilgileri kullanabilir.

Bir dosyayı okuyan ve bu dosyadaki verileri biçimlendiren bir işlev olduğunu varsayalım. Bu örnekte kod dosyayı okumaya çalışırken bir IOException oluşturulur. işlevi öğesini yakalar IOException ve oluşturur FileNotFoundException. özelliğine IOException InnerException FileNotFoundExceptionkaydedilebilir ve ilk hatanın nedenini incelemek için öğesini yakalayan FileNotFoundException kodu etkinleştirir.

İç InnerException özel duruma başvuru tutan özelliği, özel durum nesnesi başlatıldığında ayarlanır.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0