例外處理簡介

更新:2007 年 11 月

Visual Basic 支援「結構化」和「非結構化」例外 (錯誤) 處理。藉由在應用程式中放入例外處理的程式碼,您可以處理使用者可能遇到的大部分錯誤,並讓應用程式繼續執行。您可以針對可能的錯誤,使用結構化和非結構化錯誤處理進行規劃,以避免它們妨礙應用程式的執行。

當方法使用可能產生例外狀況的運算子時,或是方法呼叫或存取其他可能產生例外狀況的程序時,請考慮使用例外處理。

如果例外狀況發生於無法處理該例外狀況的方法中,就會將該例外狀況傳遞回原呼叫方法或前一個方法。如果前一個方法也沒有例外處理常式 (Exception Handler),則會將該例外狀況傳遞回該方法的呼叫端,以此類推。搜尋處理常式的動作會在呼叫堆疊中向上繼續進行,而呼叫堆疊是在應用程式中呼叫的一連串程序。如果找不到例外處理常式,就會顯示錯誤訊息,應用程式也會因此而結束。

注意事項:

單一方法只能包含結構化或非結構化例外處理,而不可同時擁有兩者。

結構化例外處理

在結構化例外處理中,程式碼區塊是封裝的,每個區塊都有一或多個相關的處理常式。每一個處理常式根據處理的例外狀況類型,指定篩選器條件的格式。當保護區塊的程式碼出現例外狀況時,會按順序搜尋對應的處理常式,並執行第一個符合篩選器條件。一個方法可有多個結構化例外處理區塊,而這些區塊也可以彼此巢狀嵌入。

Try...Catch...Finally 陳述式是專門用於結構化例外處理。如需詳細資訊,請參閱 Visual Basic 的結構化例外處理概觀

非結構化例外處理

On Error 陳述式是專門用於非結構化例外處理。在非結構化例外處理中,On Error 是放在程式碼區塊的開頭。之後 On Error 陳述式就有了該區塊的「範圍」(Scope);並會處理該區塊中發生的任何錯誤。如果程式遇到另一個 On Error 陳述式,該陳述式就會生效,而第一個陳述式會失效。如需詳細資訊,請參閱非結構化例外處理概觀

請參閱

工作

例外處理疑難排解

逐步解說:結構化例外處理

概念

錯誤類型

Visual Basic 的結構化例外處理概觀

非結構化例外處理概觀

參考

On Error 陳述式 (Visual Basic)

其他資源

例外處理工作