資源描述:
《vb調(diào)試與錯(cuò)誤處理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第9章調(diào)試與錯(cuò)誤處理主要內(nèi)容:VisualBasic6.0的調(diào)試工具程序運(yùn)行中的常見錯(cuò)誤種類VisualBasic6.0中的錯(cuò)誤捕獲和處理方法9.1程序調(diào)試9.1.1任務(wù)一VisualBasic調(diào)試工具不管設(shè)計(jì)程序或編寫代碼時(shí)多么仔細(xì),都不能完全避免錯(cuò)誤的發(fā)生。有時(shí)錯(cuò)誤會(huì)妨礙程序順利啟動(dòng),有時(shí)錯(cuò)誤會(huì)導(dǎo)致程序停止運(yùn)行或“崩潰”,還有些時(shí)候程序雖然可能會(huì)運(yùn)行但無法給出預(yù)期的結(jié)果。VisualBasic6.0的調(diào)試是在VisualBasicIDE(集成開發(fā)環(huán)境)中進(jìn)行的,它包含若干個(gè)特殊的命令和窗口以幫助用戶查找錯(cuò)誤。Visua
2、lBasic6.0提供的調(diào)試工具包括斷點(diǎn)、臨時(shí)表達(dá)式、單步運(yùn)行等。可通過選擇“調(diào)試”命令使用這些工具,也可以選擇“視圖”→“工具欄”→“調(diào)試”命令,彈出如圖9-1所示的“調(diào)試”工具欄。圖9-1“調(diào)試”工具欄9.1.2任務(wù)二程序錯(cuò)誤與調(diào)試示例即使最資深的程序員也會(huì)犯錯(cuò),因此,知道如何對應(yīng)用程序進(jìn)行調(diào)試并找出錯(cuò)誤是編程的重要組成部分。但在學(xué)習(xí)有關(guān)調(diào)試過程的知識(shí)之前,了解錯(cuò)誤類型對我們找出并修復(fù)錯(cuò)誤是很有幫助的。編程中可能出現(xiàn)的錯(cuò)誤分為三類:編譯錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤。9.2錯(cuò)誤捕獲與處理雖然VisualBasic為用戶提供
3、了強(qiáng)大的調(diào)試工具幫助用戶檢查并驗(yàn)證應(yīng)用程序,但是調(diào)試過的程序在實(shí)際的運(yùn)行中,還是會(huì)因?yàn)檫\(yùn)行環(huán)境、資源使用等原因而出現(xiàn)錯(cuò)誤。例如,在程序中需要對光盤文件進(jìn)行操作,但是光驅(qū)中卻沒有光盤,這時(shí)候就會(huì)出現(xiàn)錯(cuò)誤,需要對這個(gè)錯(cuò)誤進(jìn)行處理。VisualBasic提供了一些用于錯(cuò)誤處理的工具,包括對象、函數(shù)和語句等。使用這些工具進(jìn)行錯(cuò)誤處理的具體操作步驟如下:(1)記錄錯(cuò)誤的類型和原因。(2)在引起錯(cuò)誤的地方停止原定代碼的執(zhí)行,強(qiáng)制程序轉(zhuǎn)入到用戶自定義的“錯(cuò)誤處理程序段”入口。(3)在錯(cuò)誤處理程序段內(nèi),根據(jù)具體的錯(cuò)誤進(jìn)行相應(yīng)的處理。(4)
4、如果問題能夠解決,則在問題解決之后返回原程序處繼續(xù)往下執(zhí)行,否則停止錯(cuò)誤執(zhí)行。OnError語句1.OnErrorGoto…Resume結(jié)構(gòu)該語句的語法結(jié)構(gòu)如下:OnErrorGoTo<語句標(biāo)號(hào)>可能出錯(cuò)的語句部分ExitSub(Function)語句標(biāo)號(hào):錯(cuò)誤處理語句Resume2.OnErrorGoto…ResumeNext結(jié)構(gòu)該語句的語法結(jié)構(gòu)如下:OnErrorGoTo<語句標(biāo)號(hào)>可能出錯(cuò)的語句部分ExitSub(Function)語句標(biāo)號(hào):錯(cuò)誤處理語句ResumeNext9.3程序調(diào)試案例在VisualBasic6
5、.0中有兩項(xiàng)調(diào)試技術(shù),即設(shè)置“斷點(diǎn)”和“單步執(zhí)行”代碼,可以幫助用戶逐行檢查代碼以找出錯(cuò)誤。用戶可以在“代碼編輯器”中為任何可執(zhí)行代碼行設(shè)置斷點(diǎn)。當(dāng)程序運(yùn)行到該代碼行時(shí),斷點(diǎn)會(huì)強(qiáng)制程序停止并進(jìn)入中斷模式。此時(shí)便可及時(shí)獲取我們想要了解的有關(guān)程序在該時(shí)間點(diǎn)的狀態(tài)的任何信息。然后,可以檢查任何變量的值,在“即時(shí)”窗口中測試表達(dá)式,或者使用“編輯并繼續(xù)”功能修改代碼。下面以一個(gè)實(shí)例來看看這些調(diào)試工具的使用方法。新建一個(gè)工程,該程序的功能是,用戶在文本框中輸入一個(gè)介于0~20之間的數(shù)字,程序能計(jì)算這個(gè)數(shù)的階乘并返回結(jié)果。按下面的步驟
6、建立這個(gè)程序:(1)打開MicrosoftVisualBasic6.0中文版。(2)在彈出的對話框中,選擇“標(biāo)準(zhǔn)EXE”選項(xiàng)。(3)單擊工具欄中的Label標(biāo)簽控件,在Form1窗體上繪制一個(gè)標(biāo)簽,并將其Caption屬性改為“請輸入一個(gè)整數(shù)(0-20之間)”。(4)單擊工具欄中的Text控件,并在Form1窗體中繪制一個(gè)文本框,將其text屬性設(shè)置為空。(5)單擊工具欄中的CommandButton按鈕控件,在窗體中繪制一個(gè)控件,將其Caption屬性設(shè)置為“計(jì)算階乘”。(6)單擊工具欄中的Frame控件,并將其Capt
7、ion屬性設(shè)置為“觀測信息”。(7)最后單擊Label控件,將兩個(gè)標(biāo)簽放到Frame1中,將其Caption屬性全部設(shè)置為空。完成程序的編寫后開始調(diào)試。首先,按【F5】鍵運(yùn)行程序,在文本框中輸入數(shù)字0,單擊“計(jì)算階乘”按鈕,得到如圖9-11所示的結(jié)果。0的階乘為1,這個(gè)結(jié)果是正確的。然后我們測試一下數(shù)字1的階乘,得到如圖9-12所示的結(jié)果,也是正確的。圖9-110的階乘圖9-121的階乘打開代碼窗口,在調(diào)用Check函數(shù)的地方設(shè)置斷點(diǎn),以便程序在檢查參數(shù)之前中斷運(yùn)行,這樣可以查看程序狀態(tài)和中間結(jié)果。設(shè)置斷點(diǎn)的具體操作步驟如
8、下。(1)在代碼窗口中,把光標(biāo)移動(dòng)到要設(shè)置斷點(diǎn)的那一行。(2)選擇“調(diào)試”→“切換斷點(diǎn)”命令或按【F9】鍵。這時(shí)所設(shè)斷點(diǎn)處的語句會(huì)出現(xiàn)一個(gè)紅色亮條按【F5】鍵繼續(xù)運(yùn)行程序,在文本框中輸入-1,單擊“計(jì)算階乘”按鈕,這時(shí)程序在斷點(diǎn)處中斷。然后我們進(jìn)行單步執(zhí)行,以便跟蹤檢查這部分代碼的運(yùn)行情況。選擇“調(diào)試”