Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Proprietà Exception.InnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

public Exception InnerException { get; }

Valore proprietà

Tipo: System.Exception
Istanza di Exception in cui viene descritto l'errore che ha causato l'eccezione corrente. La proprietà InnerException restituisce lo stesso valore passato al costruttore, oppure un riferimento null (Nothing) se il valore dell'eccezione interna non è stato fornito al costruttore. Questa proprietà è in sola lettura.

Implementa

_Exception.InnerException

Quando viene generata un'eccezione X quale risultato diretto di una precedente eccezione Y , la proprietà InnerException di X deve contenere un riferimento a Y .

Utilizzare la proprietà InnerException per ottenere l'insieme di eccezioni che ha causato l'eccezione corrente.

È possibile creare una nuova eccezione che rilevi un'eccezione precedente. Nel codice che gestisce la seconda eccezione è possibile utilizzare le informazioni relative all'eccezione precedente per gestire l'errore in modo più appropriato.

Se si dispone di una funzione con lo scopo di leggere un file e formattarne i dati, quando si cerca di leggere il file, viene generata un'eccezione IOException. La funzione intercetta IOException e genera un'eccezione FileNotFoundException. È possibile salvare IOException nella proprietà InnerException del FileNotFoundException, per attivare il codice per l'intercettazione di FileNotFoundException allo scopo di esaminare la causa dell'errore iniziale.

La proprietà InnerException, che contiene un riferimento all'eccezione interna, viene impostata all'inizializzazione dell'oggetto eccezione.

Nell'esempio seguente sono illustrate la generazione e l'intercettazione di un'eccezione che fa riferimento all'eccezione 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);
         }
      }
}


L'output del codice è il seguente:

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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft