Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Exception.InnerException (Propiedad)

Obtiene la instancia Exception que produjo la excepción actual.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public Exception InnerException { get; }

Valor de propiedad

Tipo: System.Exception
Instancia de Exception que describe el error que causó la excepción actual. La propiedad InnerException devuelve el mismo valor que se pasó al constructor o una referencia nula (Nothing en Visual Basic) si no se suministró el valor de la excepción interna al constructor. Esta propiedad es de sólo lectura.

Implementaciones

_Exception.InnerException

Cuando se produce una excepción X como resultado directo de una excepción anterior Y, la propiedad InnerException de X debe contener una referencia a Y.

Utilice la propiedad InnerException para obtener el conjunto de excepciones que dieron lugar a la excepción actual.

Se puede crear una nueva excepción que detecte una excepción anterior. El código que controla la segunda excepción puede utilizar la información adicional de la excepción anterior para controlar el error de forma más adecuada.

Supongamos que existe una función que lee un archivo y aplica formato a los datos del mismo. En este ejemplo, cuando el código intenta leer el archivo, se produce IOException. La función detecta IOException y produce FileNotFoundException. IOException puede guardarse en la propiedad InnerException de FileNotFoundException de forma que permita examinar las causas del error inicial al código que detecta FileNotFoundException.

La propiedad InnerException, que contiene una referencia a la excepción interna, se establece cuando se inicializa el objeto Exception.

En el siguiente ejemplo, se muestra la forma de produce y detectar una excepción que hace referencia a una excepción interna.


using System;
public class MyAppException:ApplicationException 
{
   public MyAppException (String message) : base (message) 
   {}
   public MyAppException (String message, Exception inner) : base(message,inner) {}	
   }
public class ExceptExample 
{
   public void ThrowInner () 
   {
   throw new MyAppException("ExceptExample inner exception");
   }
   public void CatchInner() 
   {
      try 
      {
      this.ThrowInner();
      }
         catch (Exception e) 
         {
         throw new MyAppException("Error caused by trying ThrowInner.",e);
         }
      }
   }
public class Test 
{
   public static void Main() 
   {
   ExceptExample testInstance = new ExceptExample();
      try 
      {
      testInstance.CatchInner();
      }
         catch(Exception e) 
         {
         Console.WriteLine ("In Main catch block. Caught: {0}", e.Message);
         Console.WriteLine ("Inner Exception is {0}",e.InnerException);
         }
      }
}


Este código genera el siguiente resultado:

In Main
  catch block. Caught: Error caused by trying ThrowInner. Inner Exception is
  MyAppException: ExceptExample inner exception at ExceptExample.ThrowInner() at
  ExceptExample.CatchInner()

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft