HOW TO:偵錯 ASP.NET 例外狀況
在開發強固的 ASP.NET 應用程式時,偵錯例外狀況是很重要的部分。如需如何偵錯例外狀況的一般資訊,請參閱例外狀況處理 (偵錯)。
若要偵錯未處理的 ASP.NET 例外狀況,您必須確定偵錯工具會因為這些例外狀況而停止。ASP.NET 執行階段具有最頂層的例外處理常式。因此根據預設,偵錯工具永遠都不會在未處理的例外狀況中斷。若要在擲回例外狀況時中斷偵錯工具,您必須在 [例外狀況] 對話方塊中,為該特定例外狀況選取 [例外狀況為下列時中斷: Thrown] 設定。
如果您已啟用 Just My Code,而當 .NET Framework 方法或其他系統程式碼擲回例外狀況時,[例外狀況為下列時中斷: Thrown] 則不會導致偵錯工具立即中斷,而是直到偵錯工具叫用非系統程式碼後才會停止執行。因此,您不需要在發生例外狀況時,逐步執行系統程式碼。
Just My Code 提供另一個更有用的選項:[例外狀況為下列時中斷: User-unhandled]。如果為例外狀況選擇這個設定,偵錯工具則會在使用者程式碼中斷執行 (但是只有在使用者程式碼並未攔截和處理例外狀況時)。因為這個處理常式是在非使用者程式碼中,所以這個設定會取消最上層 ASP.NET 例外狀況處理常式的效果。
若要使用 Just My Code 啟用 ASP.NET 例外狀況的偵錯
在 [偵錯] 功能表上,按 [例外狀況]。
[例外狀況] 對話方塊隨即出現。
在 [Common Language Runtime 例外狀況] 資料列中,選取 [擲回] 或 [使用者未處理]。
若要使用 [使用者未處理] 設定,則必須啟用 [Just My Code]。如需詳細資訊,請參閱 [NIB] 12/13 如何:逐步執行 Just My Code。
若要使用 ASP.NET 例外狀況處理的最佳作法
- 對於您可以預期會發生例外狀況並知道如何處理的程式碼,請將 try … catch 區塊置於此程式碼周圍。例如,如果應用程式正在呼叫 XML Web Service 或直接呼叫 SQL Server 時,這段程式碼則應該是在 [try … catch] 區塊中,因為許多例外狀況可能會發生。