Eccezioni in C#
Le eccezioni sono situazioni anomale o errori che si verificano durante lâesecuzione di un programma. La gestione delle eccezioni consente di gestire questi errori in modo controllato e di garantire che lâapplicazione continui a funzionare in modo adeguato anche in caso di problemi. In questa lezione, esploreremo in dettaglio cosâè unâeccezione, come gestirla e come utilizzare la gestione delle eccezioni in C#.
Concetto di Eccezione
Unâeccezione è unâistanza di una classe che rappresenta un errore o unâevenienza anomala durante lâesecuzione del programma. Le eccezioni possono verificarsi per diverse ragioni, come divisioni per zero, accesso a un indice non valido in un array o errori di lettura/scrittura su file.
Sollevamento di Eccezioni
Per sollevare unâeccezione in C#, possiamo utilizzare la parola chiave throw
.
Esempio di Sollevamento di Eccezione:
if (denominatore == 0){ throw new DivideByZeroException("Divisione per zero non consentita.");}
Gestione delle Eccezioni
Per gestire le eccezioni e prevenire il crash dellâapplicazione, possiamo utilizzare costrutti try-catch
.
Esempio di Gestione delle Eccezioni:
try{ int risultato = numeratore / denominatore; Console.WriteLine($"Risultato: {risultato}");}catch (DivideByZeroException ex){ Console.WriteLine($"Errore: {ex.Message}");}
Blocco finally
Il blocco finally
viene eseguito sempre, indipendentemente dal fatto che si sia verificata unâeccezione o meno.
Esempio di Utilizzo del Blocco finally:
try{ // Codice che potrebbe generare un'eccezione}catch (Exception ex){ // Gestione dell'eccezione}finally{ // Codice eseguito sempre}
Gestione Multipla di Eccezioni
Ă possibile catturare eccezioni di tipi diversi in blocchi catch
separati.
Esempio di Gestione Multipla di Eccezioni:
try{ // Codice che potrebbe generare un'eccezione}catch (DivideByZeroException ex){ // Gestione divisione per zero}catch (IOException ex){ // Gestione errori di lettura/scrittura su file}
Lancio di Eccezioni Personalizzate
Ă possibile creare eccezioni personalizzate derivando dalla classe Exception
.
Esempio di Lancio di Eccezione Personalizzata:
class ValoreTroppoGrandeException : Exception{ public ValoreTroppoGrandeException(string message) : base(message) { }}
// ...
if (valore > 100){ throw new ValoreTroppoGrandeException("Il valore è troppo grande.");}
Vantaggi della Gestione delle Eccezioni
La gestione delle eccezioni consente di:
- Mantenere il controllo dellâapplicazione anche in caso di errori.
- Fornire un feedback allâutente in caso di errori.
- Registrare informazioni utili sulle eccezioni per scopi di debugging.
Conclusione
La gestione delle eccezioni è un aspetto fondamentale nella scrittura di applicazioni robuste e affidabili in C#. Consente di gestire errori in modo controllato, evitando crash improvvisi e fornendo un feedback appropriato agli utenti. Utilizzando costrutti try-catch
e creando eccezioni personalizzate, è possibile creare applicazioni piÚ stabili e facili da mantenere.