Share via


程式無法執行!尋找並排除執行階段錯誤

更新:2007 年 11 月

在本課程中,您會學到如何對程式進行偵錯,並修正執行階段錯誤。

您先前已經學過,當程式嘗試執行不可能完成的作業時,就會發生執行階段錯誤。發生執行階段錯誤時,程式會停止,並顯示錯誤訊息。此時您必須就錯誤進行偵錯並加以修正,程式才能繼續執行。

尋找並修正執行階段錯誤

一般之所以會發生執行階段錯誤,是因為您在程式碼中犯了錯誤,例如,忘了指定變數值,就開始使用程式碼。如果執行程式時發現了錯誤,程式就會停止,而且會在 [程式碼編輯器] 視窗中顯示 [例外狀況助理] 對話方塊。發生這種情況時,程式是處於「中斷」模式,可在其中完成偵錯作業。

[例外狀況助理] 對話方塊包含錯誤的描述,以及提出可能原因的疑難排解提示。您可以按一下疑難排解提示,顯示說明主題,以取得詳細資訊。

您必須修正錯誤,程式才能繼續執行。首先您要檢查程式碼,找出發生錯誤的原因。例如,如果您懷疑發生錯誤的原因是變數中所包含的值錯誤,就可以在中斷模式中使用 IntelliSense 查看變數值。將滑鼠游標放在 [程式碼編輯器] 的變數之上時,工具提示就會顯示變數值。如果該值與您預期的值不符,請檢查前面的程式碼以找出設定該值的位置,然後修正該程式碼,再繼續執行。

試試看!

若要檢查變數值

  1. 在 [檔案] 功能表上,選擇 [新專案]。

  2. 在 [新增專案] 對話方塊的 [範本] 窗格中,按一下 [Windows 應用程式]。

  3. 在 [名稱] 方塊中,輸入 RunTimeErrors,再按 [確定]。

    會開啟新的 Windows Form 專案。

  4. 按兩下這份表單,開啟 [程式碼編輯器]。

  5. 在 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")
    
  6. 請按 F5 執行程式。[例外狀況助理] 對話方塊隨即出現,並附有訊息「OverflowException 未處理」。

    從對話方塊到程式碼檔的虛線就是顯示造成錯誤的程式碼行。

    請注意,[例外狀況助理] 中的第一個疑難排解提示建議,請確定您不是除以零。

  7. 將滑鼠移到變數 miles 之上,然後停住數秒不動。應該會看到工具提示顯示「英里數 55」。

  8. 現在將滑鼠移到變數 hours 之上,工具提示應該會顯示「時數 0」。

    因為數目不能除以零,而 hours 的值為零,您就找到錯誤的原因了 — 未更新 hours 的值。

  9. 在 miles = 55 這行上面加入下面這行程式碼。

    hours = 2
    
  10. 按一下程式左邊界上的黃色箭頭,然後拖到 hours = 2 這行上。

    這樣就可以讓程式碼從該行繼續執行,而不是從包含錯誤的那行執行。為了辨認您修正的錯誤,所以必須執行您剛加入的新程式碼行。

  11. 請按下 F5 繼續執行程式。隨即出現對話方塊,顯示「每小時 28 英里」。

後續步驟

在本課程中,您學習到如何尋找並修正執行階段錯誤。在下一個課程中,您將學習關於第三類型程式設計錯誤 — 邏輯錯誤。您可以在詳述:如果-就會 (What If)...在即時運算視窗中測試程式碼中探討進階偵錯技巧,然後再繼續進行邏輯錯誤課程。

下一個課程:追蹤並修正邏輯錯誤:尋找邏輯錯誤

請參閱

工作

尋找並修正編譯器錯誤

了解錯誤:三種程式設計錯誤

尋找錯誤:Visual Basic 偵錯簡介