Udostępnij za pośrednictwem


CA2201: Nie wywołuj zastrzeżonych typów wyjątków

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 

ArgumentNullException

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

ArgumentOutOfRangeException

Nieprawidłowy enum wartości

InvalidEnumArgumentException

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

FormatException

W przeciwnym razie nieprawidłowy

ArgumentException

Podczas operacji jest nieprawidłowy dla bieżącego stanu obiektu rzutInvalidOperationException

Podczas wykonywania operacji na obiekcie, który został usunięty throwObjectDisposedException

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

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

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 przechwytuj wyjątków typów ogólnych