Gestione e generazione di eccezioni
All'interno dei programmi la gestione degli errori che si verificano durante l'esecuzione deve avvenire in modo uniforme. In Common Language Runtime è disponibile un valido supporto per la progettazione di software a tolleranza d'errore grazie a un modello che consente di notificare gli errori ai programmi in modo uniforme. In tutte le operazioni di .NET Framework gli errori vengono indicati mediante la generazione di eccezioni.
Tradizionalmente il modello di gestione degli errori di un linguaggio si basava sul metodo specifico utilizzato da tale linguaggio per rilevare gli errori e individuarne i gestori oppure sul meccanismo di gestione degli errori fornito dal sistema operativo. Nel runtime la gestione delle eccezioni viene implementata con le seguenti modalità:
Indipendentemente dal linguaggio in cui vengono generate o gestite le singole eccezioni.
Senza la necessità di una sintassi di linguaggio apposita, ma con la possibilità per ciascun linguaggio di definire la propria sintassi.
Con la possibilità di generare eccezioni anche a livello di più processi e addirittura di più computer differenti.
Le eccezioni presentano vari vantaggi rispetto ad altri metodi di notifica degli errori, quali i codici restituiti. Gli errori vengono sempre rilevati. I valori non validi non continuano a propagarsi nel sistema. Non è necessario controllare i codici restituiti. È possibile aggiungere con facilità codice per la gestione delle eccezioni per aumentare l'affidabilità dei programmi. La gestione delle eccezioni nel runtime, infine, è più rapida rispetto alla gestione degli errori di C++ per Windows.
Dal momento che i thread di esecuzione riguardano normalmente blocchi di codice gestiti e non gestiti, il runtime può generare o rilevare eccezioni sia nel codice gestito che nel codice non gestito. Nel codice non gestito possono essere incluse sia eccezioni SEH C++ che HRESULT basati su COM.
In questa sezione
- Cenni preliminari sulle eccezioni
Una panoramica sulle eccezioni di Common Language Runtime.
- Classe e proprietà dell'eccezione
Vengono descritti gli elementi di un oggetto eccezione.
- Gerarchia delle eccezioni
Vengono descritte le eccezioni da cui deriva la maggior parte delle eccezioni.
- Nozioni fondamentali sulla gestione delle eccezioni
Viene illustrato come gestire le eccezioni tramite istruzioni catch, throw e finally.
- Suggerimenti per gestire le eccezioni
Vengono descritti alcuni metodi che è consigliabile adottare per la gestione delle eccezioni.
- Gestione di eccezioni per interoperabilità COM
Viene descritto come gestire le eccezioni generate e intercettate in codice non gestito.
Riferimenti
- Classe Exception
Informazioni di riferimento per la classe da cui ereditano tutte le eccezioni.
- Classe ApplicationException
Informazioni di riferimento per la classe da cui dovrebbero derivare tutte le eccezioni generate a livello dell'applicazione.
- Classe SystemException
Informazioni di riferimento per la classe da cui derivano tutte le eccezioni generate a livello del sistema.
Sezioni correlate
- Interoperabilità COM avanzata
Viene descritto il funzionamento delle eccezioni tra codice gestito e non gestito.
- Procedura: eseguire il mapping di HRESULT ed eccezioni
Viene descritto il mapping delle eccezioni tra codice gestito e non gestito.