Udostępnij przez


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

  1. Gdy wyjątek jest zgłaszany po raz pierwszy, zanim zostanie obsłużony przez program obsługi wyjątków w debugowanym programie, mechanizm debugowania (DE) wysyła zdarzenie IDebugExceptionEvent2 do menedżera sesji debugowania (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.

  2. SdM wywołuje właściwość IDebugExceptionEvent2::GetException , aby uzyskać właściwość wyjątku.

  3. Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.

  4. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku pierwszej szansy.

  5. Jeśli użytkownik zdecyduje się kontynuować, program SDM wywołuje metodę IDebugExceptionEvent2::CanPassToDebuggee.

  6. Jeśli debugowany program nie ma procedury obsługi dla wyjątku typu "druga szansa", DE wysyła IDebugExceptionEvent2 do SDM jako EVENT_SYNC_STOP.

  7. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, poprzez otwarcie okna dialogowego wyjątku pierwszego poziomu.

  8. Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.

  9. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku drugiej szansy.

  10. Jeśli metoda zwraca S_OK, wywołuje IDebugExceptionEvent2::PassToDebuggee.