程式無法執行!尋找並排除執行階段錯誤
更新:2007 年 11 月
在本課程中,您會學到如何對程式進行偵錯,並修正執行階段錯誤。
您先前已經學過,當程式嘗試執行不可能完成的作業時,就會發生執行階段錯誤。發生執行階段錯誤時,程式會停止,並顯示錯誤訊息。此時您必須就錯誤進行偵錯並加以修正,程式才能繼續執行。
尋找並修正執行階段錯誤
一般之所以會發生執行階段錯誤,是因為您在程式碼中犯了錯誤,例如,忘了指定變數值,就開始使用程式碼。如果執行程式時發現了錯誤,程式就會停止,而且會在 [程式碼編輯器] 視窗中顯示 [例外狀況助理] 對話方塊。發生這種情況時,程式是處於「中斷」模式,可在其中完成偵錯作業。
[例外狀況助理] 對話方塊包含錯誤的描述,以及提出可能原因的疑難排解提示。您可以按一下疑難排解提示,顯示說明主題,以取得詳細資訊。
您必須修正錯誤,程式才能繼續執行。首先您要檢查程式碼,找出發生錯誤的原因。例如,如果您懷疑發生錯誤的原因是變數中所包含的值錯誤,就可以在中斷模式中使用 IntelliSense 查看變數值。將滑鼠游標放在 [程式碼編輯器] 的變數之上時,工具提示就會顯示變數值。如果該值與您預期的值不符,請檢查前面的程式碼以找出設定該值的位置,然後修正該程式碼,再繼續執行。
試試看!
若要檢查變數值
在 [檔案] 功能表上,選擇 [新專案]。
在 [新增專案] 對話方塊的 [範本] 窗格中,按一下 [Windows 應用程式]。
在 [名稱] 方塊中,輸入 RunTimeErrors,再按 [確定]。
會開啟新的 Windows Form 專案。
按兩下這份表單,開啟 [程式碼編輯器]。
在 Form_Load 事件處理常式中加入以下程式碼。
Dim miles As Integer = 0 Dim hours As Integer = 0 Dim speed As Integer = 0
miles = 55 speed = miles / hours MsgBox(CStr(speed) & " miles per hour")
請按 F5 執行程式。[例外狀況助理] 對話方塊隨即出現,並附有訊息「OverflowException 未處理」。
從對話方塊到程式碼檔的虛線就是顯示造成錯誤的程式碼行。
請注意,[例外狀況助理] 中的第一個疑難排解提示建議,請確定您不是除以零。
將滑鼠移到變數 miles 之上,然後停住數秒不動。應該會看到工具提示顯示「英里數 55」。
現在將滑鼠移到變數 hours 之上,工具提示應該會顯示「時數 0」。
因為數目不能除以零,而 hours 的值為零,您就找到錯誤的原因了 — 未更新 hours 的值。
在 miles = 55 這行上面加入下面這行程式碼。
hours = 2
按一下程式左邊界上的黃色箭頭,然後拖到 hours = 2 這行上。
這樣就可以讓程式碼從該行繼續執行,而不是從包含錯誤的那行執行。為了辨認您修正的錯誤,所以必須執行您剛加入的新程式碼行。
請按下 F5 繼續執行程式。隨即出現對話方塊,顯示「每小時 28 英里」。
後續步驟
在本課程中,您學習到如何尋找並修正執行階段錯誤。在下一個課程中,您將學習關於第三類型程式設計錯誤 — 邏輯錯誤。您可以在詳述:如果-就會 (What If)...在即時運算視窗中測試程式碼中探討進階偵錯技巧,然後再繼續進行邏輯錯誤課程。
下一個課程:追蹤並修正邏輯錯誤:尋找邏輯錯誤