다음을 통해 공유


IDebugExceptionEvent2

DE(디버그 엔진)는 현재 실행 중인 프로그램에서 예외가 throw될 때 이 인터페이스를 SDM(세션 디버그 관리자)으로 보냅니다.

구문

IDebugExceptionEvent2 : IUnknown

구현자에 대한 참고 사항

DE는 디버그 중인 프로그램에서 예외가 발생했음을 보고하기 위해 이 인터페이스를 구현합니다. IDebugEvent2 인터페이스는 이 인터페이스와 동일한 개체에 구현되어야 합니다. SDM은 QueryInterface를 사용하여 IDebugEvent2 인터페이스에 액세스합니다.

호출자 참고 사항

DE는 예외를 보고하기 위해 이 이벤트 개체를 만들고 보냅니다. 이벤트는 디버그 중인 프로그램에 연결될 때 SDM에서 제공하는 IDebugEventCallback2 콜백 함수를 사용하여 전송됩니다.

Vtable 순서의 메서드

다음 표에서는 IDebugExceptionEvent2 메서드를 보여 줍니다.

메서드 설명
GetException 이 이벤트를 발생시킨 예외에 대한 자세한 정보를 가져옵니다.
GetExceptionDescription 이 이벤트를 발생시킨 예외에 대한 사람이 읽을 수 있는 설명을 가져옵니다.
CanPassToDebuggee DE(디버그 엔진)가 실행이 다시 시작될 때 디버그 중인 프로그램에 이 예외를 전달하는 옵션을 지원하는지 여부를 결정합니다.
PassToDebuggee 실행이 다시 시작될 때 디버그 중인 프로그램에 예외를 전달할지, 아니면 예외를 삭제해야 하는지 여부를 지정합니다.

요구 사항

헤더: msdbg.h

네임스페이스: Microsoft.VisualStudio.Debugger.Interop

어셈블리: Microsoft.VisualStudio.Debugger.Interop.dll

설명

이벤트를 보내기 전에 DE는 이 예외 이벤트가 SetException에 대한 이전 호출에 의해 첫 번째 또는 두 번째 예외로 지정되었는지 확인합니다. 첫 번째 예외로 지정된 경우 IDebugExceptionEvent2 이벤트는 SDM으로 전송됩니다. 그렇지 않은 경우 DE는 애플리케이션에 예외를 처리할 수 있는 기회를 제공합니다. 예외 처리기가 제공되지 않고 예외가 두 번째 예외로 지정된 경우 IDebugExceptionEvent2 이벤트는 SDM으로 전송됩니다. 그렇지 않은 경우 DE는 프로그램 실행을 다시 시작하고 운영 체제 또는 런타임이 예외를 처리합니다.

참고 항목