Condividi tramite


Classe delle eccezioni e proprietà

La Exception classe è la classe base da cui ereditano le eccezioni. Ad esempio, la gerarchia di InvalidCastException classi è la seguente:

Object
  Exception
    SystemException
      InvalidCastException

La Exception classe ha le proprietà seguenti che semplificano la comprensione di un'eccezione.

Nome della proprietà Descrizione
Data Oggetto IDictionary che contiene dati arbitrari in coppie chiave-valore.
HelpLink Può contenere un URL (o un URN) a un file della guida che fornisce informazioni approfondite sulla causa di un'eccezione.
InnerException Questa proprietà può essere utilizzata per creare e mantenere una serie di eccezioni durante la gestione delle eccezioni. È possibile usarlo per creare una nuova eccezione che contiene eccezioni rilevate in precedenza. L'eccezione originale può essere acquisita dalla seconda eccezione nella InnerException proprietà , consentendo al codice che gestisce la seconda eccezione di esaminare le informazioni aggiuntive. Si supponga, ad esempio, di avere un metodo che riceve un argomento formattato in modo non corretto. Il codice cerca di leggere l'argomento, ma viene sollevata un'eccezione. Il metodo intercetta l'eccezione e genera un oggetto FormatException. Per migliorare la capacità del chiamante di determinare il motivo per cui viene generata un'eccezione, a volte è consigliabile che un metodo intercetta un'eccezione generata da una routine helper e quindi generi un'eccezione più indicativa dell'errore che si è verificato. È possibile creare un'eccezione nuova e più significativa, in cui il riferimento all'eccezione interna può essere impostato sull'eccezione originale. Questa eccezione più significativa può quindi essere trasmessa al chiamante. Si noti che con questa funzionalità è possibile creare una serie di eccezioni collegate che terminano con l'eccezione generata per prima.
Message Fornisce informazioni dettagliate sulla causa di un'eccezione.
Source Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore.
StackTrace Contiene un'analisi dello stack che può essere usata per determinare dove si è verificato un errore. La traccia dello stack include il nome del file di origine e il numero di riga del programma, qualora siano disponibili informazioni di debug.

La maggior parte delle classi che ereditano da Exception non implementano membri aggiuntivi o forniscono funzionalità aggiuntive. Ereditano semplicemente da Exception. Di conseguenza, le informazioni più importanti per un'eccezione sono disponibili nella gerarchia delle classi di eccezioni, nel nome dell'eccezione e nelle informazioni contenute nell'eccezione.

È consigliabile generare e intercettare solo gli oggetti che derivano da Exception, ma è possibile generare qualsiasi oggetto che deriva dalla Object classe come eccezione. Si noti che non tutti i linguaggi supportano la creazione e l'intercettazione di oggetti che non derivano da Exception.

Vedere anche