visual basic 程式設計
DESCRIPTION
Visual Basic 程式設計. 講師:戴志華 [email protected] 國立台灣大學電機工程研究所. 第十七章 程式的除錯. 錯誤分類. 編譯時期錯誤 (Compile errors) 執行時期錯誤 (Run-time errors) 邏輯錯誤 (Logic errors). Compile errors. 沒有按照 VB 語法的規定會引發語法錯誤 打錯關鍵字 漏打標點符號 結構寫錯 …………………. Compile errors(cont’d). Auto Syntax Check( 語法檢查 ) - PowerPoint PPT PresentationTRANSCRIPT
Visual Basic 程式設計
講師:戴志華[email protected]國立台灣大學電機工程研究所
第十七章 程式的除錯
錯誤分類
編譯時期錯誤 (Compile errors)執行時期錯誤 (Run-time errors)邏輯錯誤 (Logic errors)
Compile errors
沒有按照 VB 語法的規定會引發語法錯誤 打錯關鍵字 漏打標點符號 結構寫錯 …………………..
Compile errors(cont’d)
Auto Syntax Check( 語法檢查 )1. 選 Tools 功能表的 Options 命令。2. 選取 Editor 標籤頁。3. 勾選或清除 Auto Syntax Check 選項。
Compile errors(cont’d)
Require Variable Declaration( 強制變數宣告 )
1. 選 Tools 功能表的 Options 命令。2. 選取 Editor 標籤頁。3. 勾選或清除 Require Variable Declaratio
n 選項。
Compile errors(cont’d)
Combine “Auto Syntax Check” and “Require Variable Declaration”
變數名字大小寫兼具
Run-time errors
當程式執行時發生意外的狀況錯誤,導致程式無法繼續執行的錯誤 取用無法使用的物件 試圖讀取不存在的檔案 執行除以 0 的運算 ………………..
Logical errors
程式執行沒有得到預期的結果最不容易發現 借助 VB 提供的除錯工具追蹤並檢視程式執行的結果,才能找出錯誤所在
Visual Basic 的三種模式
Design( 設計 ) 製作畫面 , 加程式碼
Run( 執行 ) 程式執行
Break( 中斷 ) 除錯
What can we do in “Break” mode
當 VB 進入中斷模式後,你就能夠: 修改應用程式的程式碼。 知道現在正在執行那一個程序。 檢視及改變變數或屬性的內容值。 改變程式執行的流程。 執行 VB 的敘述或程序。
How to get into “Break” mode
碰到設定的中斷點碰到 Stop 敘述以 F8 或 Shift-F8 啟動程式執行按下 Ctrl+Break 組合鍵,或是工具列中的 Break 鈕
How to get into “Break” mode(cont’d)
應用程式發生執行時期的錯誤,按下 Debug 鍵放在 Debug.Assert 敘述後面的運算式運算的結果是 False
設定中斷點
使用 Toggle Breakpoint 命令按下 F9 鍵使用滑鼠的左鍵點中欲設定中斷點的程式碼的 Margin Indicator 區
Ctrl+Shift+F9 Clear all breakpoints
使用 Stop 敘述
可以隨著程式碼一起儲存起來 製成 EXE 之後不會失效
Sub cmdSubmit_OnClick()
'Enter Break mode
Stop
End Sub
使用 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
使用 Debug 工具列
使用滑鼠的右鍵點中工具列上空曠的地方,再選擇 Debug 命令
追蹤程式方法
逐行 (Step Into) F8逐程式 (Step Over) Shift-F8跳出 (Step Out) Ctrl-Shift-F8執行至游標處 (Run to Cursor) Ctrl-F8
追蹤程式方法 (cont’d)
設定下個執行點 (Set Next Statement) Ctrl-F9顯示下個執行點 (Show Next Statement)
使用 Watch 視窗
使用 Watch 視窗在程式進入中斷模式時,檢視變數的內容值或運算式的結果 Debug/Add WatchDebug/Edit Watch
使用 Quick Watch
想在 VB 進入中斷模式時監視並未加到Watch 視窗的變數、屬性或運算式Debug/Quick Watch
使用 Immediate 視窗
利用 Immediate 視窗呼叫程序、計算運算式、或是改變屬性或變數的值 用來顯示錯誤訊息
把資料列印到 Immediate 視窗
在 Immediate 視窗中使用 Print 方法在應用程式中使用 Debug.Print 方法
Print BackColor
? BackColor
使用 Debug.Print
不用中斷程式的執行,就可以檢視欲檢視的變數、屬性或運算式不會影響使用者輸出的畫面 Debug.Print 方法會和專案的程式碼儲存在一起
Debug.Print "Salary = " & curSalary
Immediate 視窗的進階用法
改變屬性或變數的內容值
測試程序的結果
frmMain.BackColor = 255
intMaxRows = 50
dblResult = Quadratic(2, 8, 8)
Immediate 視窗的進階用法 (cont’d)
在 Immediate 視窗中取得錯誤代碼所代表的含意
可以輸入任何運算除了不接受宣告
error 58
使用 Local 視窗
觀察目前執行的程序可以看得到的變數View/Locals Window
使用 Call Stack 視窗
存放已經被呼叫,但是還沒有執行結束的所有程序 View/Call StackFunction A Function B Function C
除錯基本程序
在可疑的地方設中斷點在過程中順便把可疑的變數加入監看視窗修改可疑之處,在測試之 ~~
Error
On Error GoTo line On Error Resume NextOn Error GoTo 0