例外處理簡介 (Visual Basic)
Visual Basic 支援「結構化」(Structured) 和「非結構化」(Unstructured) 例外 (錯誤) 處理。 藉由在應用程式中放入例外處理的程式碼,您可以處理使用者可能遇到的大部分錯誤,並讓應用程式繼續執行。 您可以針對可能的錯誤,使用結構化和非結構化錯誤處理進行規劃,以避免它們妨礙應用程式的執行。
當方法使用可能產生例外狀況的運算子時,或是方法呼叫或存取其他可能產生例外狀況的程序時,請考慮使用例外處理。
如果例外狀況發生於無法處理該例外狀況的方法中,就會將該例外狀況傳遞回原呼叫方法或前一個方法。 如果前一個方法也沒有例外處理常式 (Exception Handler),則會將該例外狀況傳遞回該方法的呼叫端,以此類推。 搜尋處理常式的動作會在呼叫堆疊中向上繼續進行,而呼叫堆疊是在應用程式中呼叫的一連串程序。 如果找不到例外處理常式,就會顯示錯誤訊息,應用程式也會因此而結束。
注意事項 |
---|
單一方法只能包含結構化或非結構化例外處理,而不可同時擁有兩者。 |
結構化例外處理
在結構化例外處理中,程式碼區塊是封裝的,每個區塊都有一或多個相關的處理常式。 每一個處理常式根據處理的例外狀況類型,指定篩選器條件的格式。 當保護區塊的程式碼出現例外狀況時,會按順序搜尋對應的處理常式,並執行第一個符合篩選器條件。 一個方法可有多個結構化例外處理區塊,而這些區塊也可以彼此巢狀嵌入。
Try...Catch...Finally 陳述式是專門用於結構化例外處理。 如需詳細資訊,請參閱 Visual Basic 的結構化例外處理概觀。
非結構化例外處理
On Error 陳述式是專門用於非結構化例外處理。 在非結構化例外處理中,On Error 是放在程式碼區塊的開頭。 之後 On Error 陳述式就有了該區塊的「範圍」(Scope);並會處理該區塊中發生的任何錯誤。 如果程式遇到另一個 On Error 陳述式,該陳述式就會生效,而第一個陳述式會失效。 如需詳細資訊,請參閱非結構化例外處理概觀 (Visual Basic)。