Gestione e generazione di eccezioni

Aggiornamento: novembre 2007

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

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