Eccezioni e gestione delle eccezioni (C#)

Cambia visualizzazione:
ScriptFree
Guida per programmatori C#
Eccezioni e gestione delle eccezioni (Guida per programmatori C#)

Le funzionalità di gestione delle eccezioni del linguaggio C# consentono di gestire situazioni impreviste o eccezionali che si verificano durante l'esecuzione di un programma. Nella gestione delle eccezioni vengono utilizzate le parole chiave try, catch e finally per tentare di eseguire azioni che potrebbero non riuscire, per gestire gli errori e per pulire successivamente le risorse. Le eccezioni possono essere generate da Common Language Runtime (CLR), da librerie di terze parti o dal codice dell'applicazione mediante la parola chiave throw.

In questo esempio un metodo verifica la presenza di una divisione per zero e rileva l'errore. Senza la gestione delle eccezioni, il programma verrebbe chiuso con un errore simile al seguente: DivideByZeroException non è stata gestita.

int SafeDivision(int x, int y)
{
    try
    {
        return (x / y);
    }
    catch (System.DivideByZeroException dbz)
    {
        System.Console.WriteLine("Division by zero attempted!");
        return 0;
    }
}
Cenni preliminari sulle eccezioni

Le eccezioni dispongono delle seguenti proprietà:

  • Quando nell'applicazione si verifica una circostanza eccezionale, ad esempio una divisione per zero o un problema di memoria insufficiente, viene generata un'eccezione.

  • Utilizzare un blocco try intorno alle istruzioni che potrebbero generare eccezioni.

  • Quando si verifica un'eccezione all'interno del blocco try, il flusso di controllo passa immediatamente a un gestore eccezioni associato, se presente.

  • Se per una determinata eccezione non sono presenti gestori, l'esecuzione del programma verrà interrotta con un messaggio di errore.

  • Se un blocco catch definisce una variabile dell'eccezione, è possibile utilizzarlo per ottenere ulteriori informazioni sul tipo di eccezione che si è verificata.

  • Le azioni che possono generare un'eccezione vengono eseguite con la parola chiave try.

  • Un gestore eccezioni è un blocco di codice che viene eseguito quando si verifica un'eccezione. Per la definizione di un gestore eccezioni, in C# viene utilizzata la parola chiave catch.

  • Le eccezioni possono essere generate in modo esplicito da un programma mediante la parola chiave throw.

  • Gli oggetti eccezione contengono informazioni dettagliate sull'errore, tra cui lo stato dello stack di chiamate e una descrizione dell'errore.

  • Il codice di un blocco finally viene eseguito anche se viene generata un'eccezione, consentendo in tal modo a un programma di rilasciare risorse.

Sezioni correlate

Per ulteriori informazioni sulle eccezioni e sulla relativa gestione, vedere i seguenti argomenti:

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 8.9.5 Istruzione throw

  • 8.10 Istruzione try

  • 16 Eccezioni

Vedere anche

Riferimenti

Parole chiave di C#
throw (Riferimenti per C#)
try-catch (Riferimenti per C#)
try-finally (Riferimenti per C#)
try-catch-finally (Riferimenti per C#)

Concetti

Guida per programmatori C#
Cenni preliminari sulle eccezioni

Altre risorse

Linee guida di progettazione delle eccezioni
Gestione e generazione di eccezioni