Sdílet prostřednictvím


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

Viz také

Další zdroje

Upozornění návrhu