1 / 31

Visual Basic 程式設計

Visual Basic 程式設計. 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所. 第十七章 程式的除錯. 錯誤分類. 編譯時期錯誤 (Compile errors) 執行時期錯誤 (Run-time errors) 邏輯錯誤 (Logic errors). Compile errors. 沒有按照 VB 語法的規定會引發語法錯誤 打錯關鍵字 漏打標點符號 結構寫錯 …………………. Compile errors(cont’d). Auto Syntax Check( 語法檢查 )

Download Presentation

Visual Basic 程式設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所

  2. 第十七章 程式的除錯

  3. 錯誤分類 • 編譯時期錯誤(Compile errors) • 執行時期錯誤(Run-time errors) • 邏輯錯誤(Logic errors)

  4. Compile errors • 沒有按照VB語法的規定會引發語法錯誤 • 打錯關鍵字 • 漏打標點符號 • 結構寫錯 • …………………..

  5. Compile errors(cont’d) • Auto Syntax Check(語法檢查) • 選 Tools 功能表的 Options 命令。 • 選取 Editor 標籤頁。 • 勾選或清除 Auto Syntax Check 選項。

  6. Compile errors(cont’d) • Require Variable Declaration(強制變數宣告) • 選 Tools 功能表的 Options 命令。 • 選取 Editor 標籤頁。 • 勾選或清除 Require Variable Declaration選項。

  7. Compile errors(cont’d) • Combine “Auto Syntax Check” and “Require Variable Declaration” 變數名字大小寫兼具

  8. Run-time errors • 當程式執行時發生意外的狀況錯誤,導致程式無法繼續執行的錯誤 • 取用無法使用的物件 • 試圖讀取不存在的檔案 • 執行除以0的運算 • ………………..

  9. Logical errors • 程式執行沒有得到預期的結果 • 最不容易發現 • 借助VB提供的除錯工具追蹤並檢視程式執行的結果,才能找出錯誤所在

  10. Visual Basic 的三種模式 • Design(設計) 製作畫面,加程式碼 • Run(執行) 程式執行 • Break(中斷) 除錯

  11. What can we do in “Break” mode • 當VB進入中斷模式後,你就能夠: • 修改應用程式的程式碼。 • 知道現在正在執行那一個程序。 • 檢視及改變變數或屬性的內容值。 • 改變程式執行的流程。 • 執行VB的敘述或程序。

  12. How to get into “Break” mode • 碰到設定的中斷點 • 碰到 Stop 敘述 • 以F8或Shift-F8啟動程式執行 • 按下 Ctrl+Break 組合鍵,或是工具列中的 Break 鈕

  13. How to get into “Break” mode(cont’d) • 應用程式發生執行時期的錯誤,按下 Debug 鍵 • 放在 Debug.Assert 敘述後面的運算式運算的結果是 False 

  14. 設定中斷點 • 使用Toggle Breakpoint命令 • 按下 F9鍵 • 使用滑鼠的左鍵點中欲設定中斷點的程式碼的 Margin Indicator區 Ctrl+Shift+F9 Clear all breakpoints

  15. 使用Stop敘述 • 可以隨著程式碼一起儲存起來 • 製成EXE之後不會失效 Sub cmdSubmit_OnClick() 'Enter Break mode Stop End Sub

  16. 使用Debug.Assert方法 • 接在Debug.Assert 後面的運算式運算的結果是False便中斷 • 製成EXE之後就會完全失效 Private Sub cmdCount_Click() Dim intCounter As Integer For intCounter = 1 To 10 Debug.Assert intCounter < 5 Next End Sub

  17. 使用Debug工具列 • 使用滑鼠的右鍵點中工具列上空曠的地方,再選擇 Debug 命令

  18. 追蹤程式方法 • 逐行(Step Into) F8 • 逐程式(Step Over) Shift-F8 • 跳出(Step Out) Ctrl-Shift-F8 • 執行至游標處(Run to Cursor) Ctrl-F8

  19. 追蹤程式方法(cont’d) • 設定下個執行點 (Set Next Statement) Ctrl-F9 • 顯示下個執行點 (Show Next Statement)

  20. 使用Watch視窗 • 使用Watch視窗在程式進入中斷模式時,檢視變數的內容值或運算式的結果 • Debug/Add Watch • Debug/Edit Watch

  21. 使用Quick Watch • 想在VB進入中斷模式時監視並未加到Watch視窗的變數、屬性或運算式 • Debug/Quick Watch

  22. 使用Immediate視窗 • 利用Immediate視窗呼叫程序、計算運算式、或是改變屬性或變數的值 • 用來顯示錯誤訊息

  23. 把資料列印到Immediate視窗 • 在Immediate視窗中使用 Print 方法 • 在應用程式中使用 Debug.Print 方法 Print BackColor ? BackColor

  24. 使用 Debug.Print • 不用中斷程式的執行,就可以檢視欲檢視的變數、屬性或運算式 • 不會影響使用者輸出的畫面 • Debug.Print 方法會和專案的程式碼儲存在一起 Debug.Print "Salary = " & curSalary

  25. Immediate視窗的進階用法 • 改變屬性或變數的內容值 • 測試程序的結果 frmMain.BackColor = 255 intMaxRows = 50 dblResult = Quadratic(2, 8, 8)

  26. Immediate視窗的進階用法(cont’d) • 在Immediate視窗中取得錯誤代碼所代表的含意 • 可以輸入任何運算除了不接受宣告 error 58

  27. 使用Local視窗 • 觀察目前執行的程序可以看得到的變數 • View/Locals Window

  28. 使用Call Stack視窗 • 存放已經被呼叫,但是還沒有執行結束的所有程序 • View/Call Stack • Function A  Function B  Function C

  29. 除錯基本程序 • 在可疑的地方設中斷點 • 在過程中順便把可疑的變數加入監看視窗 • 修改可疑之處,在測試之~~

  30. Error • On ErrorGoToline • On ErrorResume Next • On ErrorGoTo0

More Related