例外處理 (偵錯)
這個主題適用於:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro、Premium 和 Ultimate |
例外狀況是指程式執行時發生的異常狀況。 例外狀況通常表示發生了必須偵錯的問題。 發生例外狀況時,除非已在選項對話方塊、偵錯、一般視窗中停用了偵錯工具,否則偵錯工具都會將例外狀況訊息寫入至 [輸出] 視窗。
偵錯工具不一定會在例外狀況發生時中斷執行。
如果發生非 ASP.NET 例外狀況,並且沒有加以處理,偵錯工具就一定會中斷執行。
擲回例外狀況時,您可以在任何處理常式被叫用 (Invoke) 之前,先通知偵錯工具立即中斷執行。 如需詳細資訊,請參閱 HOW TO:當擲回例外狀況時中斷。
如果與 HOW TO:逐步執行 Just My Code 一起進行偵錯,您就擁有第三個選項。 您可以通知偵錯工具,在並非由使用者程式碼 ("My Code") 中處理常式所處理的任何例外狀況中斷執行。 如需詳細資訊,請參閱 HOW TO:發生使用者未處理的例外狀況時中斷。
ASP.NET 具有最上層例外處理常式,該處理常式會處理例外狀況,以便對瀏覽器使用者顯示錯誤頁面。 除非啟用了 Just My Code,否則,該最上層例外處理常式將會阻止未處理的例外狀況中斷至偵錯工具中。 請務必啟用 ASP.NET 偵錯的 Just My Code。
請記住,如果發生例外狀況且完全沒有處理,偵錯工具就一定會中斷。 使用者未處理的設定並不會改變這點。
Visual Studio 偵錯工具可以辨識下列例外狀況分類:
C++ 例外狀況
Common Language Runtime 例外狀況
Managed 偵錯助理
原生執行階段檢查
Win32 例外狀況
大部分的例外狀況都有處理常式,而處理常式是設計用來在例外狀況發生時予以回應, 讓程式有機會從異常情況中復原。 原生執行階段檢查沒有處理常式。
在 Visual Basic 應用程式中,即使使用 On Error 樣式的錯誤處理常式,偵錯工具還是會將所有錯誤都表示為例外狀況。
對於 Visual Basic 和 C#,現在偵錯工具擁有全新的例外狀況助理能在例外狀況發生時提供更多的資訊。
下列主題將提供處理例外狀況的資訊:
-
注意事項 (僅限 Visual Basic 和 Visual C#) 如果在關閉 [例外狀況助理] 的情況下發生無法攔截的例外狀況,[區域變數] 視窗就會加入虛擬變數 $exception。 您可展開此虛擬變數以查看例外狀況的資訊。