Porady: obsługa wyjątków za pomocą bloku try/catch (Przewodnik programowania w języku C#)
Celem try-catch blok jest do połowu i obsłużyć wyjątek wygenerowany przez kod pracy.Niektóre wyjątki można obsługiwać w catch bloku i problem rozwiązać bez wyjątku, re-thrown; więcej często jedyną rzeczą, którą można wykonać jest jednak upewnić się, że właściwe jest wyjątek.
Przykład
W tym przykładzie IndexOutOfRangeException nie jest najbardziej odpowiedni wyjątek: ArgumentOutOfRangeException sens więcej dla metody, ponieważ błąd jest spowodowany przez index argument przekazany przez obiekt wywołujący.
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);
}
}
}
Komentarze
Kod, który powoduje, że wyjątek jest ujęty w try bloku.A catch instrukcja dodaje się niezwłocznie po do obsługi IndexOutOfRangeException, jeśli występuje.catch Zablokować uchwyty IndexOutOfRangeException i generuje bardziej odpowiednie ArgumentOutOfRangeException wyjątek w zamian.Aby zapewnić wywołujący z możliwie jak najwięcej informacji, należy rozważyć określające pierwotny wyjątek jako InnerException nowych wyjątku.Ponieważ InnerException jest właściwość tylko do odczytu, należy najpierw przypisać mu w konstruktorze nowych wyjątków.
Zobacz też
Informacje
Wyjątki i obsługa wyjątków (Przewodnik programowania w języku C#)
Obsługa wyjątków (Przewodnik programowania w języku C#)