Condividi tramite


Procedura: gestire un'eccezione utilizzando Try/Catch (Guida per programmatori C#)

Aggiornamento: novembre 2007

Lo scopo di un blocco try-catch è di intercettare e gestire un'eccezione generata da codice effettivo. Alcune eccezioni possono essere gestite in un blocco catch e il problema viene risolto senza generare di nuovo l'eccezione. Molto spesso, tuttavia, è possibile solo assicurarsi che venga generata l'eccezione appropriata.

Esempio

In questo esempio, IndexOutOfRangeException non è l'eccezione più appropriata. ArgumentOutOfRangeException è più adatta al metodo perché l'errore è causato dall'argomento index passato dal chiamante.

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            //set IndexOutOfRangeException to the new exception's InnerException
            throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
        }
    }
}

Commenti

Il codice che genera un'eccezione è racchiuso nel blocco try. Subito dopo viene aggiunta un'istruzione catch per gestire l'eventuale IndexOutOfRangeException. Il blocco catch gestisce l'eccezione IndexOutOfRangeException e genera l'eccezione ArgumentOutOfRangeException più appropriata. Per fornire al chiamante le maggiori informazioni possibili, specificare l'eccezione originale come proprietà InnerException della nuova eccezione. Poiché la proprietà InnerException è readonly, è necessario assegnarla nel costruttore della nuova eccezione.

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Eccezioni e gestione delle eccezioni (Guida per programmatori C#)

Gestione delle eccezioni (Guida per programmatori C#)