Sdílet prostřednictvím


CA2201: Nevyvolávejte vyhrazené typy výjimek

Název_typu

DoNotRaiseReservedExceptionTypes

CheckId

CA2201

Kategorie

Microsoft.Usage

Změnit rozdělení

Rozdělení

Příčina

Metoda vyvolává typem výjimky příliš obecné nebo je vyhrazena modulu runtime.

Popis pravidla

Následující typy výjimek jsou příliš obecné poskytnout dostatečné informace pro uživatele:

Následující typy výjimek jsou vyhrazeny a by měla být vyvolána pouze společný jazykový modul runtime:

Není vyvolávají obecné výjimky

Pokud jste například vyvoláním obecné výjimce typu, Exception nebo SystemException v knihovně nebo v rámci nutí spotřebitele zachytit všechny výjimky, včetně neznámý výjimky, které neznají způsob zpracování.

Místo toho více odvozený typ, který již existuje v rámci throw, nebo vytvořit vlastní typ, který je odvozen z Exception.

Vyvolávají určité výjimky

Následující tabulka zobrazuje parametry a výjimek, které má být vyvolána při ověřování parametrů, včetně hodnoty parametru v přístupový objekt set vlastnosti:

Popis parametru

Výjimka

nullodkaz 

ArgumentNullException

Mimo povolený rozsah hodnot (například index pro kolekci nebo seznam)

ArgumentOutOfRangeException

Neplatný enum hodnoty

InvalidEnumArgumentException

Obsahuje formát, který nesplňuje specifikace parametru metody (například řetězec formátu pro ToString(String))

FormatException

Jinak neplatná.

ArgumentException

Při operaci je neplatná pro aktuální stav throw objektuInvalidOperationException

Při provádění operace v objektu, který byl uvolněn throwObjectDisposedException

Pokud operace není podporována (například v Potlačené Stream.Write proudu otevřen pro čtení) throwNotSupportedException

Při převodu by mělo za následek přetečení (například operátor přetížení explicitní cast) throwOverflowException

Pro všechny situace, zvažte vytvoření vlastní typ, který je odvozen z Exception a který throw.

Jak opravit porušení

Porušení tohoto pravidla opravíte změňte typ thrown výjimku na určitý typ, který není jedním z vyhrazené typy.

Při potlačení upozornění

Nepotlačovat upozornění od tohoto pravidla.

Souvisejících pravidel

CA1031: Nezachycujte výjimky obecného typu