CA2219: Nevyvolávejte výjimky v klauzulích výjimky
TypeName |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
Kategorie |
Microsoft.Usage |
Narušující změna |
Nenarušující, Narušující |
Příčina
Výjimka je vyvolána v klauzuli finally, ve filtru nebo v klauzuli fault.
Popis pravidla
Vyvolání výjimky v klauzuli pro zpracování výjimky významně znesnadňuje ladění.
Když je výjimka vyvolána v klauzuli finally nebo fault, je případná aktivní výjimka překryta novou výjimkou.Díky tomu je obtížné rozpoznat a ladit původní chybu.
Vyvolání výjimky v klauzuli filtru způsobí neoznámené odchycení výjimky modulem runtime a vyhodnocení filtru na hodnotu false.Neexistuje žádný způsob, jak zjistit rozdíl mezi vyhodnocením filtru na hodnotu false a vyvoláním výjimky ve filtru.Díky tomu je obtížné rozpoznat a ladit chyby v logice filtru.
Jak vyřešit porušení
Pro zajištění tohoto pravidla je potřeba předejít explicitnímu vyvolávání výjimek v klauzuli finally, ve filtru nebo v klauzuli fault.
Kdy potlačit upozornění
Nepotlačovat upozornění pro toto pravidlo.Neexistují žádné scénáře, ve kterých je v kódu výhodné vyvolávat výjimku v klauzuli pro zpracování výjimky.
Související pravidla
CA1065: Nevyvolávejte výjimky v neočekávaných umístěních