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
Riferimenti
Eccezioni e gestione delle eccezioni (Guida per programmatori C#)