Udostępnij za pośrednictwem


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#)

Koncepcje

Przewodnik programowania w języku C#