Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im Folgenden wird der Prozess beschrieben, der auftritt, wenn Ausnahmen ausgelöst werden.
Ausnahmebehandlungsprozess
Wenn eine Ausnahme zum ersten Mal ausgelöst wird, aber bevor sie vom Ausnahmehandler im zu debuggenden Programm behandelt wird, sendet das Debugmodul (DE) ein IDebugExceptionEvent2 als Stoppereignis an den Sitzungsdebug-Manager (SDM). Die
IDebugExceptionEvent2wird gesendet, wenn nur die Einstellungen für die Ausnahme (im Dialogfeld "Ausnahmen" im Debugpaket angegeben) angeben, dass der Benutzer bei Erstchance-Ausnahmemeldungen anhalten möchte.Die SDM ruft IDebugExceptionEvent2::GetException auf, um die Eigenschaft der Ausnahme abzurufen.
Das Debugpaket ruft IDebugExceptionEvent2::CanPassToDebuggee auf, um zu bestimmen, welche Optionen dem Benutzer präsentiert werden sollen.
Das Debugpaket fragt den Benutzer, wie die Ausnahme behandelt werden soll, indem es ein Erstausnahme-Dialogfeld öffnet.
Wenn der Benutzer den Vorgang fortsetzen möchte, ruft die SDM IDebugExceptionEvent2::CanPassToDebuggee auf.
Wenn die Methode S_OK zurückgibt, ruft sie IDebugExceptionEvent2::PassToDebuggee auf.
-oder-
Wenn die Methode S_FALSE zurückgibt, erhält das zu debuggende Programm eine zweite Chance, die Ausnahme zu behandeln.
Wenn das zu debuggende Programm keinen Handler für eine Zweitchancen-Ausnahme aufweist, sendet die DE ein
IDebugExceptionEvent2als EVENT_SYNC_STOP an das SDM.Das Debugpaket fragt den Benutzer, wie die Ausnahme behandelt werden soll, indem es ein First-Chance-Ausnahmedialogfeld öffnet.
Das Debugpaket ruft IDebugExceptionEvent2::CanPassToDebuggee auf, um zu bestimmen, welche Optionen dem Benutzer präsentiert werden sollen.
Das Debugpaket fordert den Benutzer auf, wie die Ausnahme behandelt wird, indem er ein Dialogfeld mit zweiter Chance öffnet.
Wenn die Methode S_OK zurückgibt, wird
IDebugExceptionEvent2::PassToDebuggeeaufgerufen.