Esaminare le eccezioni e i modi in cui vengono usate
- 6 minuti
In precedenza in questo modulo si è appreso che gli errori di runtime in C# sono chiamati eccezioni e che è necessario "intercettarli" (“catch”) prima che arrestino l'applicazione. Davvero? Intercettare le eccezioni prima che possano arrestare l'applicazione sembra più simile a un videogioco che alla scrittura di un'applicazione. Quindi, cosa significa esattamente "intercettare" (“catch”) un'eccezione? Per rispondere a questa domanda, è necessario iniziare esaminando in dettaglio che cos'è un'eccezione.
Che cosa sono le eccezioni?
Ecco una definizione più formale che descrive cos'è un'eccezione e come viene usata un'eccezione in un'applicazione C#:
In C# gli errori nel programma in runtime vengono propagati tramite il programma usando un meccanismo chiamato eccezioni. Le eccezioni vengono generate dal codice che rileva un errore e intercettate dal codice in grado di correggere l'errore. Le eccezioni possono essere generate dal runtime .NET o dal codice in un programma. Le eccezioni sono rappresentate da classi derivate da un’eccezione. Ogni classe identifica il tipo di eccezione e contiene proprietà con dettagli sull'eccezione.
Importante
Questo training non richiede una conoscenza approfondita delle classi .NET. Non preoccuparti se questa definizione è un po’ confusa. È possibile usare le eccezioni nel codice senza una conoscenza approfondita delle classi.
La documentazione di Microsoft sulle eccezioni è molto dettagliata. Tuttavia, questa definizione fornisce le informazioni necessarie al momento. In particolare, è necessario comprendere due aspetti:
- È necessario comprendere cosa sono le eccezioni.
- È necessario comprendere come usare le eccezioni nelle applicazioni.
È possibile considerare un'eccezione come una variabile con funzionalità aggiuntive. È possibile fare le stesse cose che sono state fatte con eccezioni, con le variabili, ad esempio:
- È possibile creare tipi diversi di eccezioni.
- È possibile accedere ai contenuti di un'eccezione.
Cosa significa "generare" (“throw”) e "intercettare" (“catch”) un'eccezione?
I termini "generare" (“throw”) e "intercettare" (“catch”) possono essere spiegati valutando la definizione di un'eccezione.
La seconda frase della definizione indica che "Le eccezioni vengono generate dal codice che rileva un errore e intercettate dal codice in grado di correggere l'errore". La prima parte di questa frase indica che le eccezioni vengono create dal runtime .NET quando si verifica un errore nel codice. La seconda parte della frase indica che è possibile scrivere codice per intercettare un'eccezione generata. Inoltre, il codice che intercetta l'eccezione può essere usato per completare un'azione correttiva, nella speranza di attenuare la situazione causata dal codice che ha generato l'errore. In altre parole, è possibile scrivere codice che protegge l'applicazione quando si verifica un errore.
Dopo aver valutato la seconda frase della definizione, si sa quanto segue:
- Un'eccezione viene creata in runtime quando il codice genera un errore.
- L'eccezione può essere considerata come una variabile con alcune funzionalità aggiuntive.
- È possibile scrivere codice che accede all'eccezione e intraprende azioni correttive.
La parte rimanente della definizione indica che se il runtime .NET rileva un errore, viene generata l'eccezione. L'eccezione generata contiene informazioni sull'errore che si è verificato. Il codice può intercettare un'eccezione e correggere il problema usando le informazioni archiviate nell'eccezione.
Riepilogo
Ecco i concetti più importanti di questa unità da ricordare:
- Le eccezioni vengono usate in C# per propagare gli errori in fase di esecuzione e sono rappresentate da classi derivate dalla classe
Exception. - Le eccezioni vengono generate dal codice che rileva un errore e intercettate dal codice in grado di correggere l'errore.
- Quando viene rilevata un'eccezione, il codice può accedere ai relativi contenuti ed eseguire azioni correttive per attenuare l'errore.
- Il runtime .NET genera eccezioni quando rileva un errore e l'eccezione contiene informazioni sul tipo di errore che si è verificato.