Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Propriedade InnerException
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Propriedade Exception.InnerException

Obtém a instância de Exception que causou a exceção atual.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public Exception InnerException { get; }

Valor de propriedade

Tipo: System.Exception
Uma instância de Exception que descreve o erro que causou a exceção atual. A propriedade de InnerException retorna o mesmo valor passado no construtor, ou uma referência nula (Nothing no Visual Basic) se o valor da exceção interna não foi fornecido para o construtor. Esta propriedade é somente leitura.

Implementações

_Exception.InnerException

Quando uma exceção é lançada X como um resultado direto de uma exceção Yanterior, a propriedade de InnerException de X deve conter uma referência a Y.

Use a propriedade de InnerException para obter o conjunto de exceções que conduziram à exceção atual.

Você pode criar uma nova exceção que captura uma exceção anterior. O código que trata a segunda exceção pode utilizar informações adicionais de exceção anterior para tratar o erro adequadamente mais.

Suponha que haja uma função que lê um arquivo e formate os dados desse arquivo. Neste exemplo, como as tentativas de código para ler o arquivo, IOException gerada. A função captura IOException e lançará FileNotFoundException. IOException pode ser salvo na propriedade de InnerException de FileNotFoundException, habilitando o código que captura FileNotFoundException para analisar o que causa o erro inicial.

A propriedade de InnerException , que contém uma referência à exceção interna, é definida na inicialização do objeto de exceção.

O exemplo a seguir demonstra o kit e capturar uma exceção de que faz referência à exceção interna especificadas.


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 tem a seguinte saída:

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

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

.NET para aplicativos do Windows Phone

Com suporte em: 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 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft