Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA2219 |
| Cím | Ne emeljenek kivételt a kivételkikötésekben |
| Kategória | Használat |
| A javítás romboló vagy nem romboló | Nem törő, megszakítás |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Kivételt vált ki egy finally szűrő vagy hiba záradék.
Szabály leírása
Ha kivételt emelnek ki egy kivételkikötésben, az jelentősen növeli a hibakeresés nehézségét.
Ha a finally vagy hibazáradékban kivétel keletkezik, az új kivétel elrejti az aktív kivételt, ha van ilyen. Ez megnehezíti az eredeti hiba észlelését és hibakeresését.
Ha egy szűrőzáradék kivételt hoz létre, a futtatókörnyezet észrevétlenül elkapja a kivételt, és a szűrő hamisra értékelődik ki. Nem lehet megállapítani a különbséget a hamisnak kiértékelt szűrő és a szűrőből származó kivétel között. Ez megnehezíti a szűrő logikájában előforduló hibák észlelését és hibakeresését.
Szabálysértések kijavítása
A szabály megsértésének kijavításához ne indítson el kivételt egy finally szűrőből vagy hibakezelési záradékból.
Example
try
{
// ...
}
finally
{
// This code violates the rule.
throw new Exception();
}
Mikor kell letiltani a figyelmeztetéseket?
Ne nyomja el a szabályra vonatkozó figyelmeztetést. Nincsenek olyan forgatókönyvek, amelyek esetén egy kivételkikötésben felvetett kivétel előnyt biztosít a végrehajtó kód számára.
Kapcsolódó szabályok
CA1065: Ne emeljen kivételeket váratlan helyeken