例外狀況處理 (Visual Studio SDK)
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
以下說明時發生的例外狀況的處理程序。
例外狀況處理程序
當第一次擲回例外狀況,但它由偵錯程式中的例外狀況處理常式之前,偵錯引擎 (DE) 會將傳送IDebugExceptionEvent2來做為停止事件工作階段偵錯管理員 (SDM)。
IDebugExceptionEvent2
如果只有例外狀況 (例外狀況 對話方塊中偵錯封裝中指定) 的設定會指定使用者想要停止的第一個出現的例外狀況通知會傳送。SDM 呼叫IDebugExceptionEvent2::GetException取得例外狀況的屬性。
偵錯封裝呼叫IDebugExceptionEvent2::CanPassToDebuggee來判斷哪些選項呈現給使用者。
偵錯封裝詢問使用者如何藉由開啟第一個出現的例外狀況 對話方塊中處理例外狀況。
如果使用者選擇繼續,會呼叫 SDM IDebugExceptionEvent2::CanPassToDebuggee。
方法會傳回 S_OK,如果呼叫IDebugExceptionEvent2::PassToDebuggee。
-或-
如果此方法會傳回 S_FALSE,程式進行偵錯獲得第二個機會處理例外狀況。
如果正在偵錯的程式有第二個可能的例外狀況處理常式,就會傳送 DE
IDebugExceptionEvent2
來做為 SDM EVENT_SYNC_STOP。偵錯封裝詢問使用者如何藉由開啟第一個出現的例外狀況 對話方塊中處理例外狀況。
偵錯封裝呼叫IDebugExceptionEvent2::CanPassToDebuggee來判斷哪些選項呈現給使用者。
偵錯封裝詢問使用者如何藉由開啟第二個可能的例外狀況 對話方塊中處理例外狀況。
方法會傳回 S_OK,如果呼叫
IDebugExceptionEvent2::PassToDebuggee
。