本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

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 起可用
返回页首
显示: