Zpracování výjimek (Visual Studio SDK)
Následující článek popisuje proces, ke kterému dochází při vyvolání výjimek.
Proces zpracování výjimek
Při prvním vyvolání výjimky, ale před jejím zpracování obslužnou rutinou výjimky v ladicím programu odešle ladicí modul (DE) do správce ladění relace (SDM) jako zastavovací událost IDebugExceptionEvent2 . Odešle
IDebugExceptionEvent2
se, pokud pouze nastavení výjimky (zadané v dialogovém okně Výjimky v balíčku ladění) určuje, že uživatel chce zastavit u oznámení o výjimce první šance.SDM volá IDebugExceptionEvent2::GetException pro získání vlastnosti výjimky.
Ladicí balíček volá IDebugExceptionEvent2::CanPassToDebuggee určit, jaké možnosti má uživatel prezentovat.
Ladicí balíček se zeptá uživatele, jak zpracovat výjimku otevřením dialogového okna s první náhodou výjimky.
Pokud se uživatel rozhodne pokračovat, SDM volá IDebugExceptionEvent2::CanPassToDebuggee.
Pokud metoda vrátí S_OK, volá IDebugExceptionEvent2::P asToDebuggee.
nebo
Pokud metoda vrátí S_FALSE, program, který je laděný, má druhou šanci zpracovat výjimku.
Pokud laděný program nemá žádnou obslužnou rutinu pro druhou šanci výjimky, de odešle
IDebugExceptionEvent2
do SDM jako EVENT_SYNC_STOP.Ladicí balíček se zeptá uživatele, jak zpracovat výjimku otevřením dialogového okna s první náhodou výjimky.
Ladicí balíček volá IDebugExceptionEvent2::CanPassToDebuggee určit, jaké možnosti má uživatel prezentovat.
Ladicí balíček se zeptá, jak má uživatel zpracovat výjimku otevřením dialogového okna s druhou náhodou výjimky.
Pokud metoda vrátí S_OK, zavolá
IDebugExceptionEvent2::PassToDebuggee
.