共用方式為


使用例外狀況協助程式檢查例外狀況

無論您的技術或專業程度如何,經常會面臨處理例外狀況的難題。 要搞懂例外狀況為何導致程式碼出錯常會令人備感沮喪。 當您在 Visual Studio 中偵錯例外狀況時,我們希望透過向您提供相關例外狀況資訊,來協助您更快地偵錯問題,從而減少這種挫敗感。

例外狀況協助程式

出現例外狀況時暫停

當偵錯工具遇到例外狀況而中斷時,該行程式碼右側會顯示例外狀況錯誤圖示。 而例外狀況圖示附近則會出現非強制回應的例外狀況協助程式。

程式碼旁的例外狀況協助程式

檢查例外狀況資訊

您可以立即在例外狀況協助程式中讀取例外狀況的類型和訊息,以及例外狀況是否已擲回或尚未處理。 按一下 [檢視詳細資料] 連結,您就可以檢視例外狀況物件的屬性。

分析 Null 參考

從 Visual Studio 2017 開始,對於 .NET 和 C/C++ 程式碼,當您叫用 NullReferenceExceptionAccessViolation 時,會在例外狀況協助程式中看到 Null 分析資訊。 分析結果以文字顯示在例外狀況訊息下方。 下圖中,該資訊會顯示為「s 為 null」。

例外狀況協助程式 Null 分析

注意

受控程式碼中的 Null 參考分析需要 .NET 4.6.2 版。 通用 Windows 平台 (UWP) 和任何其他 .NET Core 應用程式目前不支援 Null 分析。 只有在偵錯沒有 Just-In-Time (JIT) 程式碼最佳化的程式碼時,才能加以使用。

設定例外狀況設定

您可以對偵錯工具進行設定,在例外狀況協助程式的 [例外狀況設定] 區段擲回目前類型的例外狀況時即中斷。 如果偵錯工具遇例外狀況擲回時即暫停,您可以使用核取方塊來停用未來擲回時對該例外狀況類型的中斷。 如果不希望此特定模組中擲回此特定例外狀況時中斷,請在例外狀況設定視窗中,勾選除非從以下位置擲回:底下模組名稱旁的核取方塊。

檢查內部例外狀況

如果例外狀況具有任何內部例外狀況 (InnerException),您可以在例外狀況協助程式中加以檢視。 如果有多個例外狀況存在,您可以使用呼叫堆疊上方顯示的向左鍵和向右鍵在其間巡覽。

具有內部例外狀況的例外狀況協助程式

檢查重新擲回的例外狀況

如果例外狀況曾為 thrown,例外狀況協助程式則會顯示第一次擲回例外狀況時的呼叫堆疊。 如果例外狀況經過多次擲回,則僅顯示原始例外狀況的呼叫堆疊。

具有重新擲回的例外狀況的例外狀況協助程式

檢查非同步例外狀況 (.NET)

從 .NET 9 開始,當非同步工作方法在 .NET Framework 程式碼內擲回例外狀況時,Visual Studio 偵錯工具就會自動中斷。 這可讓您更輕鬆地偵錯非同步程式碼,特別是在 ASP.NET 中,因為例外狀況通常會在非同步界限上擲回。

使用非同步方法的例外狀況協助程式螢幕擷取畫面。

檢視呼叫堆疊

從 Visual Studio 2022 17.3 版開始,您可以在 [呼叫堆疊] 視窗中檢視例外狀況堆疊框架。 對於非同步例外狀況,這會增加快速載入符號或尋找來源的能力,並直接前往例外狀況的網站。 [呼叫堆疊] 視窗內的例外狀況堆疊框架提供標準呼叫堆疊功能,例如自動瀏覽、在框架之間快速切換、符號載入和反編譯等選項,以回到擲回例外狀況的原始程式碼。

具有呼叫堆疊的例外狀況協助程式

取得 AI 協助

如果您具有 Copilot,可以在偵錯例外狀況時取得 AI 協助。 只需尋找 [詢問 Copilot][詢問 Copilot] 按鈕的螢幕擷取畫面。 按鈕即可。 在這些案例中,Copilot 已知道問題的內容,因此您不需要自行在聊天中提供內容。 如需詳細資訊,請參閱使用 Copilot 進行偵錯

使用 Live Share 共用偵錯工作階段

在例外狀況協助程式中,您可以使用啟動 Live Share 工作階段...連結來啟動 Live Share 工作階段。任何加入 Live Share 工作階段的人都可以看到例外狀況協助程式,以及任何其他偵錯資訊。