Obsługa wyjątków (zestaw Visual Studio SDK)
Poniżej opisano proces, który występuje w przypadku zgłaszania wyjątków.
Proces obsługi wyjątków
Gdy wyjątek jest zgłaszany po raz pierwszy, ale przed jego obsługą przez program obsługi wyjątków w debugowanym programie aparat debugowania (DE) wysyła zdarzenie IDebugExceptionEvent2 do menedżera debugowania sesji (SDM) jako zdarzenie zatrzymania. Element
IDebugExceptionEvent2
jest wysyłany, jeśli tylko ustawienia wyjątku (określone w oknie dialogowym Wyjątki w pakiecie debugowania) określają, że użytkownik chce zatrzymać powiadomienia o wyjątkach pierwszej szansy.SdM wywołuje właściwość IDebugExceptionEvent2::GetException , aby uzyskać właściwość wyjątku.
Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.
Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku pierwszej szansy.
Jeśli użytkownik zdecyduje się kontynuować, program SDM wywołuje metodę IDebugExceptionEvent2::CanPassToDebuggee.
Jeśli metoda zwraca S_OK, wywołuje metodę IDebugExceptionEvent2::P assToDebuggee.
— lub —
Jeśli metoda zwraca S_FALSE, debugowany program ma drugą szansę obsługi wyjątku.
Jeśli debugowany program nie ma procedury obsługi dla wyjątku drugiej szansy, de wysyła do
IDebugExceptionEvent2
SDM jako EVENT_SYNC_STOP.Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku pierwszej szansy.
Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.
Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku drugiej szansy.
Jeśli metoda zwraca S_OK, wywołuje metodę
IDebugExceptionEvent2::PassToDebuggee
.