Použití filtrovaných výjimek uživatelského režimu v obslužné rutině
Visual Basic v současné době podporuje uživatelem filtrované výjimky. Obslužné rutiny uživatelem filtrovaných výjimek zachycují a zpracovávají výjimky založené na požadavcích, které zadáte ve výjimce. Tyto obslužné rutiny událostí používají příkaz Catch s klíčovým slovem When.
Tato technika je užitečná, když určitý objekt výjimky odpovídá více chybám. V tomto případě objekt obvykle obsahuje vlastnost, která obsahuje zvláštní chybový kód, jež je přidružený k chybě. Můžete použít vlastnost chybového kódu v příkazu pro výběr pouze konkrétní chyby, kterou chcete zpracovat v dané klauzuli Catch.
Následující příklad v jazyce Visual Basic ukazuje příkaz Catch/When.
Try
'Try statements.
Catch When Err = VBErr_ClassLoadException
'Catch statements.
End Try
Výraz klauzule filtrované uživatelem není žádným způsobem omezen. Pokud dojde k výjimce v průběhu provádění výrazu filtrovaném uživatelem, pak je tato výjimka zahozena a filtrovaný výraz je považován za vyhodnocení jako NEPRAVDA. V tomto případě modul CLR pokračuje ve vyhledávání obslužné rutiny pro současnou výjimku.
Kombinace specifických výjimek a klauzulí v uživatelsky filtrovaném režimu
Výpis catch může obsahovat jak zvláštní výjimku, tak i klauzule filtrované uživatelem. Runtime nejprve testuje specifickou výjimku. Pokud je specifická výjimka úspěšná, pak runtime spustí uživatelský filtr. Obecný filtr může obsahovat odkaz na proměnnou uvedenou ve filtru třídy. Všimněte si, že pořadí dvou klauzulí filtru nemůže být změněno.
Následující příklad jazyka Visual Basic ukazuje specifickou výjimku ClassLoadException v příkazu Catch, stejně jako klauzuli filtrovanou uživatelem, které používá klíčové slovo When.
Try
'Try statements.
Catch cle As ClassLoadException When cle.IsRecoverable()
'Catch statements.
End Try
Viz také
Úkoly
Postupy: Použití bloku Try/Catch pro zachycení výjimek
Postupy: Použít specifické výjimky v bloku Catch
Koncepty
Doporučené postupy pro zpracování výjimek