Udostępnij za pośrednictwem


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

Koncepcje

Podręcznik programowania C#