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.