Jak: obsłużyć wyjątek przy użyciu try/catch (C# Programming Guide)
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ługi wyjątków (Podręcznik programowania C#)
(C# Programming Guide) obsługi wyjątków