發生錯誤時要執行的動作:處理錯誤
更新:2007 年 11 月
在本課程中,您將學習如何為程式建立基本的錯誤處理程式碼。
即使是最精心設計的程式,偶而也會發生錯誤。有些錯誤是程式碼中的缺失,可以找出並加以更正。但有些錯誤則是程式自然發生的結果,例如,您的程式可能會嘗試開啟已經在使用中的檔案。在這種情況下,可以預測會有錯誤發生,但卻無法避免。身為程式設計人員,您必須要預測這些錯誤,而且要協助程式進行處理。
執行階段錯誤
程式執行時所發生的錯誤,稱為「執行階段錯誤」。當程式嘗試執行並非原先所設計要執行的作業時,就會發生執行階段錯誤。例如,如果程式嘗試執行無效的作業 (例如將非數值字串轉換成數值),就會發生執行階段錯誤。
發生執行階段錯誤時,程式就會發出「例外狀況」(Exception),並查看程式中的程式碼以處理錯誤。如果找不到發生錯誤的程式碼,程式就會停止,而且必須重新啟動。由於這樣可能會導致資料遺失,因此最好是在任何可能預期會發生錯誤之處,建立錯誤處理程式碼,才是明智之舉。
Try...Catch...Finally 區塊
您可以使用 Try...Catch...Finally 區塊,處理程式碼中的執行階段錯誤。您可以 Try 一個程式碼區段。如果該程式碼發出例外狀況,它就會跳至 Catch 區塊,然後執行 Catch 區塊中的程式碼。完成該程式碼以後,便執行 Finally 區塊中的所有程式碼。整個 Try...Catch...Finally 區塊是以 End Try 陳述式結束。下列範例將示範如何使用各個區塊。
Try
' Code here attempts to do something.
Catch
' If an error occurs, code here will run.
Finally
' Code in this block will always run.
End Try
首先,執行 Try 區塊中的程式碼。如果執行時沒有任何錯誤,程式就會略過 Catch 區塊,直接執行 Finally 區塊中的程式碼。如果 Try 區塊中發生錯誤,執行作業便立即跳至 Catch 區塊,執行其中的程式碼,然後再執行 Finally 區塊中的程式碼。
試試看!
若要使用 Try...Catch 區塊
在 [檔案] 功能表上,選擇 [新增專案]。
在 [新增專案] 對話方塊中,按一下 [範本] 窗格中的 [Windows 應用程式]。
在 [名稱] 方塊中,輸入 TryCatch,再按 [確定]。
會開啟新的 Windows Form 專案。
從 [工具箱] 中,將一個 [TextBox] 控制項和一個 [Button] 控制項拖曳到表單上。
按兩下 [按鈕],開啟 [程式碼編輯器]。
在 Button1_Click 事件處理常式中,輸入下列程式碼:
Try Dim aNumber As Double = CDbl(Textbox1.Text) MsgBox("You entered the number " & aNumber) Catch MsgBox("Please enter a number.") Finally MsgBox("Why not try it again?") End Try
請按 F5 執行程式。
在文字方塊中輸入數值,然後按一下按鈕。訊息方塊隨即顯示,其中顯示您輸入的數字,之後邀請您再試一次。
接著,在文字方塊中輸入非數值,例如,字詞,然後按一下按鈕。這次程式會嘗試將文字方塊中的文字轉換成數字,但因無法完成便發生錯誤。此時即不完成 Try 區塊中的程式碼,而執行 Catch 區塊,然後您就會收到訊息方塊,請您輸入數字。然後再執行 Finally 區塊,邀請您再試一次。
後續步驟
在本課程中,您學會如何使用 Try...Catch...Finally 區塊,建立基本的錯誤處理結構。本課程是 Visual Basic 語言簡介的最後一個課程。下一系列的課程中,您將學習如何為程式建立使用者介面。
下一個課程:建立程式的視覺外觀:Windows Form 簡介
請參閱
工作
參考
Try...Catch...Finally 陳述式 (Visual Basic)