IDebugStackFrame3::InterceptCurrentException
Volá se ladicí program na aktuálním snímku zásobníku, když chce zachytit aktuální výjimku.
Syntaxe
Parametry
dwFlags
[v] Určuje různé akce. V současné době je podporována pouze hodnota IEA_INTERCEPT
INTERCEPT_EXCEPTION_ACTION a musí být zadána.
pqwCookie
[ven] Jedinečná hodnota identifikující konkrétní výjimku
Vrácená hodnota
V případě úspěchu vrátí S_OK; v opačném případě vrátí kód chyby.
Následují nejběžnější chyby, které se vrátí.
Chyba | Popis |
---|---|
E_EXCEPTION_CANNOT_BE_INTERCEPTED |
Aktuální výjimku nelze zachytit. |
E_EXCEPTION_CANNOT_UNWIND_ABOVE_CALLBACK |
Aktuální rámec spuštění ještě nebyl prohledán obslužnou rutinou. |
E_INTERCEPT_CURRENT_EXCEPTION_NOT_SUPPORTED |
Tato metoda není pro tento rámec podporována. |
Poznámky
Když dojde k vyvolání výjimky, ladicí program získá řízení z doby běhu v klíčových bodech během procesu zpracování výjimek. Během těchto klíčových okamžiků může ladicí program požádat aktuální rámec zásobníku, pokud chce snímek zachytit výjimku. Tímto způsobem je zachycená výjimka v podstatě obslužnou rutinou zachytávání výjimek pro rámec zásobníku, i když tento rámec zásobníku nemá obslužnou rutinu výjimky (například blok try/catch v kódu programu).
Když ladicí program chce vědět, jestli má být výjimka zachycena, volá tuto metodu na aktuální objekt zásobníku rámce. Tato metoda zodpovídá za zpracování všech podrobností o výjimce. Pokud IDebugStackFrame3 rozhraní není implementováno nebo InterceptStackException
metoda vrátí chybu, ladicí program pokračuje ve zpracování výjimky normálně.
Poznámka:
Výjimky lze zachytit pouze ve spravovaném kódu, tj. při spuštění programu, který je laděný program spuštěn v době běhu .NET. Implementátoři jazyka třetích stran samozřejmě můžou implementovat InterceptStackException
ve svých vlastních ladicích modulech, pokud tak zvolí.
Po dokončení zachycení se signalizují IDebugInterceptionCompleteEvent2 .