Classe e proprietà dell'eccezione

La classe Exception è la classe di base da cui vengono ereditate le eccezioni. Ad esempio, la gerarchia della classe InvalidCastException è illustrata di seguito:

Object
  Exception
    SystemException
      InvalidCastException

La classe Exception include le proprietà seguenti che facilitano la comprensione di un'eccezione.

Nome proprietà Descrizione
Data IDictionary contenente dati arbitrari in coppie chiave-valore.
HelpLink Può contenere un URL (o URN) di un file della Guida che offre informazioni dettagliate sulla causa di un'eccezione.
InnerException Questa proprietà può essere usata per creare e mantenere una serie di eccezioni durante la gestione delle eccezioni. È possibile usarla per creare una nuova eccezione contenente le eccezioni rilevate in precedenza. L'eccezione originale può essere acquisita dalla seconda eccezione nella proprietà InnerException, consentendo al codice che gestisce la seconda eccezione di esaminare le informazioni aggiuntive. Ad esempio, si supponga di avere un metodo che riceve un argomento non formattato correttamente. Il codice tenta di leggere l'argomento, ma viene generata un'eccezione. Il metodo rileva l'eccezione e genera FormatException. Per migliorare la capacità del chiamante di determinare il motivo per il quale viene generata un'eccezione, è a volte utile che un metodo rilevi un'eccezione generata da una routine di supporto e quindi generi un'eccezione più indicativa dell'errore che si è verificato. Sarà 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 inviata al chiamante. Si noti che con questa funzionalità è possibile creare una serie di eccezioni collegate che termina con l'eccezione che è stata generata per prima.
Message Offre informazioni dettagliate sulla causa di un'eccezione.
Source Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.
StackTrace Contiene un'analisi dello stack che può essere usata per determinare dove si è verificato un errore. L'analisi dello stack include il nome del file di origine e il numero di riga del programma, se sono disponibili informazioni di debug.

La maggior parte delle classi che ereditano da Exception non implementano membri aggiuntivi né offrono funzionalità supplementari, ma si limitano a ereditare da Exception. Per questa ragione, le informazioni più importanti per un'eccezione si trovano nella gerarchia delle classi delle eccezioni, nel nome dell'eccezione e nelle informazioni contenute nell'eccezione.

Si consiglia di generare e rilevare solo oggetti che derivano da Exception, ma è possibile generare qualsiasi oggetto che deriva dalla classe Object come eccezione. Si noti che non tutti i linguaggi supportano la generazione e il rilevamento degli oggetti che non derivano da Exception.

Vedi anche