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 |
|
Mimo povolený rozsah hodnot (například index pro kolekci nebo seznam) |
|
Neplatný enum hodnoty |
|
Obsahuje formát, který nesplňuje specifikace parametru metody (například řetězec formátu pro ToString(String)) |
|
Jinak neplatná. |
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.