Udostępnij za pośrednictwem


CA2201: Nie należy podnosić typów wyjątków zarezerwowane

TypeName

DoNotRaiseReservedExceptionTypes

CheckId

CA2201

Kategoria

Microsoft.Usage

Złamanie zmiany

Złamanie

Przyczyna

Metoda wywołuje typ wyjątku, który jest zbyt ogólne lub który jest zarezerwowany przez aparat plików wykonywalnych.

Opis reguły

Następujące typy wyjątków są zbyt ogólne, aby dostarczyć wystarczające informacje do użytkownika:

Następujące typy wyjątków są zarezerwowane i powinny zostać wygenerowany tylko przez common language runtime:

Nie generują wyjątki ogólne

Jeśli typ ogólny wyjątek, takie jak generowanie Exception lub SystemException w bibliotece lub w ramach to wymusza konsumentów, aby przechwytywać wszystkie wyjątki, łącznie z nieznanych wyjątki, które nie wiedzą, jak obsługiwać.

Zamiast tego throw bardziej pochodny typ, który już istnieje w ramach albo utworzyć własny typ, który pochodzi od Exception.

Rzut szczególne wyjątki.

W poniższej tabeli przedstawiono parametry i których wyjątki od throw podczas sprawdzania poprawności parametru, włączając parametr wartość w akcesor zestawu właściwości:

Parametr Opis

Wyjątek

nullOdwołanie 

System.ArgumentNullException

Poza dopuszczalny zakres wartości (takie jak indeks dla kolekcji lub lista)

System.ArgumentOutOfRangeException

Nieprawidłowy enum wartości

System.ComponentModel.InvalidEnumArgumentException

Zawiera format, który nie spełnia specyfikacje parametr metody (takie jak ciąg formatu dla ToString(String))

System.FormatException

W przeciwnym razie nieprawidłowy

System.ArgumentException

Podczas operacji jest nieprawidłowy dla bieżącego stanu obiektu rzutSystem.InvalidOperationException

Podczas wykonywania operacji na obiekcie, który został usunięty throwSystem.ObjectDisposedException

Kiedy operacja nie jest obsługiwana (na przykład w zastąpiona Stream.Write w strumieniu otwarty do odczytu) throwSystem.NotSupportedException

Podczas konwersji spowodowałoby przepełnienie (na przykład w przeciążenie operatora rzutowania jawne) throwSystem.OverflowException

Dla wszystkich innych sytuacjach należy rozważyć możliwość utworzenia własnego typ, który pochodzi od Exception i że throw.

Jak naprawić naruszenia

Aby usunąć naruszenie tej zasady, należy zmienić typ wyjątku thrown do określonego typu, który nie jest jednym z typów zastrzeżonych.

Kiedy do pomijania ostrzeżenia

Nie pomijaj ostrzeżenie od tej reguły.

Zasady pokrewne

CA1031: Nie przechwytywać wyjątku ogólnych typów