![第9章 調(diào)試和錯誤處理課件_第1頁](http://file4.renrendoc.com/view12/M07/3D/26/wKhkGWckhmiADGl4AAFykag7oR4470.jpg)
![第9章 調(diào)試和錯誤處理課件_第2頁](http://file4.renrendoc.com/view12/M07/3D/26/wKhkGWckhmiADGl4AAFykag7oR44702.jpg)
![第9章 調(diào)試和錯誤處理課件_第3頁](http://file4.renrendoc.com/view12/M07/3D/26/wKhkGWckhmiADGl4AAFykag7oR44703.jpg)
![第9章 調(diào)試和錯誤處理課件_第4頁](http://file4.renrendoc.com/view12/M07/3D/26/wKhkGWckhmiADGl4AAFykag7oR44704.jpg)
![第9章 調(diào)試和錯誤處理課件_第5頁](http://file4.renrendoc.com/view12/M07/3D/26/wKhkGWckhmiADGl4AAFykag7oR44705.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第9章程序調(diào)試與公布發(fā)行
本章目的:通過本章學習了解和掌握有關(guān)VB程序調(diào)試、發(fā)布應(yīng)用程序的方法。
第9章調(diào)試和錯誤處理第9章程序調(diào)試與出錯處理9.1錯誤類型和程序模式9.2程序調(diào)試9.3捕獲錯誤及處理
9.3.1Err對象
9.3.2捕獲錯誤
9.3.3設(shè)計錯誤處理程序9.4程序發(fā)布
第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式調(diào)試:在應(yīng)用程序中查找并修改錯誤的過程稱之為調(diào)試。
1.錯誤類型VisualBasic應(yīng)用程序中出現(xiàn)的錯誤分為三類:編譯錯誤、運行時錯誤和邏輯錯誤。第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式(1)編譯錯誤是指在程序編譯過程中出現(xiàn)的錯誤。產(chǎn)生原因:通常是由于不正確書寫代碼而產(chǎn)生的。例如關(guān)鍵字寫錯、遺漏標點符號等。
VisualBasic利用自動語法檢查功能找出有語法錯誤的語句,幫助用戶糾正語法錯誤。自動語法檢查是在“工具/選項/編輯器”中設(shè)置,設(shè)置好自動語法檢查功能后,只要在代碼窗口中出現(xiàn)一個有語法錯誤的語句,當將光標移到其它語句行時就會立即顯示錯誤提示信息。如圖所示。第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式(2)運行時的錯誤是指應(yīng)用程序在運行期間執(zhí)行了非法操作所產(chǎn)生的錯誤,例如除法運算中除數(shù)為零,打開文件時文件沒找到,訪問磁盤時驅(qū)動器中無盤等。例9.1:下標越界錯誤
PrivateSubCommand1_Click()DimA(10)asIntegerDimIasInteger第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式
ForI=0to20A(I)=INextEndSub如圖所示第9章調(diào)試和錯誤處理
9.1錯誤類型和程序模式第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式(3)邏輯錯誤當應(yīng)用程序未按預(yù)期方式執(zhí)行時,就會產(chǎn)生邏輯錯誤。例9.2某程序如下:PrivateSubCommand1_Click()DimsummberAsIntegerDimIAsIntegerForI=0to100summber=sumber+INextPrintsummberEndsub(變量名寫錯)第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式2.應(yīng)用程序的模式有三種模式:設(shè)計模式,運行模式和中斷模式。(1)設(shè)計模式啟動VisualBasic6.0后就進入設(shè)計模式。功能:設(shè)計窗體布局、繪制控件、編寫代碼、設(shè)計并查看屬性等。另外還可以在代碼窗口中設(shè)置斷點,創(chuàng)建監(jiān)視表達式,但不能在設(shè)計模式下使用調(diào)試工具。
第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式(2)運行模式單擊工具欄中的啟動按鈕或者選擇“運行”菜單中的“啟動”選項,都可以進入運行模式。功能:同應(yīng)用程序交換信息,但不能修改程序。(3)中斷模式功能:分析應(yīng)用程序的當前狀態(tài)并修改程序代碼,并且所有的調(diào)試工具都是在中斷模式下運行的。第9章調(diào)試和錯誤處理9.1錯誤類型和程序模式進入中斷模式有幾種方式:在設(shè)計模式下通過設(shè)置斷點或者使用“stop”語句將應(yīng)用程序置于中斷模式選擇“運行”菜單中的“中斷”選項,或者單擊“中斷”按鈕將應(yīng)用程序置于中斷模式按下Ctrl+Break鍵來引導(dǎo)程序由運行模式切換到中斷模式。應(yīng)用程序在運行時產(chǎn)生錯誤,也可以自動切換到中斷模式。第9章調(diào)試和錯誤處理9.2程序調(diào)試是指在應(yīng)用程序中查找并修改錯誤的過程。1.調(diào)試工具調(diào)試工具有:切換斷點、逐語句、逐過程、跳出,本地窗口、立即窗口、監(jiān)視窗口、快速監(jiān)視和調(diào)試堆棧。通過“調(diào)試”菜單或調(diào)試工具欄可以獲得全部調(diào)試工具。如圖所示。第9章調(diào)試和錯誤處理9.2程序調(diào)試第9章調(diào)試和錯誤處理9.2程序調(diào)試(1)切換斷點運行一個程序時,遇到具有斷點的代碼會中斷應(yīng)用程序的執(zhí)行。斷點設(shè)置位置:通常斷點被設(shè)置在代碼中被懷疑可能會出問題的區(qū)域,斷點可以在中斷模式或設(shè)計模式下設(shè)置。設(shè)置斷點的方法:通常是在代碼窗口中,在要設(shè)置斷點的那一行代碼的左邊空白區(qū)單擊鼠標左鍵設(shè)置。如圖所示。第9章調(diào)試和錯誤處理9.2程序調(diào)試第9章調(diào)試和錯誤處理9.2程序調(diào)試設(shè)置斷點后,VisualBasic將以粗體突出顯示設(shè)定行,并在該行前面顯示一個黑色(或紅色)圓點符號。(2)逐語句:逐語句執(zhí)行就是一條語句一條語句的執(zhí)行代碼,通過查看應(yīng)用程的窗體或調(diào)試窗口來判斷這條語句是否正確。如果執(zhí)行的代碼是過程調(diào)用,也會跟蹤到被調(diào)用過程中繼續(xù)一條語句一條語句的執(zhí)行。(3)逐過程:逐過程執(zhí)行就是以整個函數(shù)或過程為一個整體,一次執(zhí)行下去。第9章調(diào)試和錯誤處理9.2程序調(diào)試逐過程與逐語句的相似之處:也是一條語句一條語句的執(zhí)行代碼。不同之處是:當執(zhí)行的代碼是過程調(diào)用時,逐語句會跟蹤到被調(diào)用過程中,而逐過程不會跟蹤到被調(diào)用過程中,它把被調(diào)用過程作為一個整體一次執(zhí)行過去。第9章調(diào)試和錯誤處理9.2程序調(diào)試(4)跳出:當用逐語句方法跟蹤進入過程或函數(shù)中,如果發(fā)現(xiàn)過程中的語句沒有問題,可以單擊“調(diào)試”工具欄的“跳出”按鈕,從當前的過程中跳出,去執(zhí)行過程調(diào)用者的下一條語句。(5)本地窗口:用戶在調(diào)試程序時可以利用“本地”窗口顯示當前過程中所有變量的值。當程序的執(zhí)行從一個過程切換到另一個過程時,“本地”窗口的內(nèi)容會發(fā)生改變,它顯示的是當前過程中可用的變量。如圖所示。第9章調(diào)試和錯誤處理9.2程序調(diào)試第9章調(diào)試和錯誤處理9.2程序調(diào)試(6)立即窗口功能:可以檢查某個屬性或者變量的值,還可以執(zhí)行單個的過程,對表達式求值,或為變量或?qū)傩再x值等。顯示立即窗口的方法:單擊“調(diào)試”工具欄上的“立即窗口”按鈕。如圖所示。第9章調(diào)試和錯誤處理9.2程序調(diào)試第9章調(diào)試和錯誤處理9.2程序調(diào)試在應(yīng)用程序中輸出信息到立即窗口的方法:在print方法前加上Debug即可。例如:var=9ption=“演示程序”(7)監(jiān)視窗口功能:對用戶定義的表達式進行監(jiān)視。
監(jiān)視表達式設(shè)置方法:在監(jiān)視窗口中單擊鼠標右鍵,從彈出的快捷菜單中選擇所需的功能。監(jiān)視表達式可以在監(jiān)視窗口中添加、刪除或重新編輯。如圖所示。
第9章調(diào)試和錯誤處理9.2程序調(diào)試第9章調(diào)試和錯誤處理9.2程序調(diào)試(8)快速監(jiān)視功能:檢查那些沒有在監(jiān)視窗口中定義的屬性、變量或表達式的值。方法:在代碼窗口中選中要進行快速監(jiān)視的表達式,然后單擊調(diào)試工具欄的“快速監(jiān)視”按鈕(9)調(diào)用堆棧功能:顯示所有活動過程調(diào)用的一個列表?;顒舆^程調(diào)用:所謂活動過程調(diào)用,就是應(yīng)用程序已啟動但尚未完成的過程。第9章調(diào)試和錯誤處理9.2程序調(diào)試例9.3完成求1---5這5個數(shù)的階乘,并且將這5個數(shù)的階乘分別存放到數(shù)組a(1)---a(5)的5個元素中。操作步驟如下:(1)新建工程并在窗體上添加一個CommandButton控件。將CommandButton控件的Caption屬性設(shè)置為“計算”。第9章調(diào)試和錯誤處理9.2程序調(diào)試(2)編寫應(yīng)用程序代碼PrivateSubCommand1_Click()Dima(5)AsIntegerDimk,oAsIntegerFork=1to5a(k)=factor(k)NextForo=1to5Printa(0)NextEndSub第9章調(diào)試和錯誤處理9.2程序調(diào)試Functionfactor(xAsInteger)AsIntegerDimi,tAsIntegert=1Fori=1toxt=t*iNextfactor=tEndFuction
第9章調(diào)試和錯誤處理9.2程序調(diào)試(3)運行該程序,并單擊“計算”按鈕。運行結(jié)果如圖所示。第9章調(diào)試和錯誤處理9.2程序調(diào)試從運行結(jié)果可以看出,結(jié)果是不正確的,采取如下步驟檢測參數(shù)傳遞是否發(fā)生錯誤。①打開代碼窗口設(shè)置斷點。將斷點設(shè)置在發(fā)生函數(shù)調(diào)用的語句。即將a(k)=factor(k)語句設(shè)置為斷點位置。②設(shè)置斷點后,重新運行應(yīng)用程序。單擊“計算”按鈕,程序在斷點處中斷運行,進入中斷模式。如圖所示。
第9章調(diào)試和錯誤處理第9章調(diào)試和錯誤處理9.2程序調(diào)試③打開調(diào)試工具欄、本地窗口和立即窗口,用于監(jiān)視程序的運行。如圖所示。第9章調(diào)試和錯誤處理第9章調(diào)試和錯誤處理9.2程序調(diào)試④單擊調(diào)試工具欄上的“逐語句”按鈕,讓程序逐句執(zhí)行。利用“逐語句”工具逐步運行被調(diào)用函數(shù)factor,同時觀察每個變量的變化情況。經(jīng)認真分析后,發(fā)現(xiàn)被調(diào)用函數(shù)factor沒有出現(xiàn)錯誤。⑤當流程回到Command1_Click()中時,我們利用立即窗口顯示一下a(k)的值。顯示為1,結(jié)果正確。⑥經(jīng)過上述跟蹤檢測,發(fā)現(xiàn)前面的語句、函數(shù)及參數(shù)沒有錯誤。那么錯誤一定在Click事件過程中的For語句中,也就是Printa(0)語句。即將o寫成了0。第9章調(diào)試和錯誤處理9.3捕獲錯誤及處理
9.3.1Err對象錯誤處理程序的功能:用于處理那些可預(yù)見但卻無法避免的運行時錯誤。Err對象主要用于保存最新的運行時錯誤信息。1.Err對象的常用屬性①Number屬性為數(shù)值類型,記錄錯誤號②Source屬性為字符串,記錄錯誤產(chǎn)生者的工程名稱。③Description屬性為字符串,記錄簡短的錯誤信息描述。
第9章調(diào)試和錯誤處理
9.3.1Err對象2.Err對象的常用方法(1)Clear方法:清除Err對象的當前屬性值。Err對象的屬性值在執(zhí)行了Resume語句或OnError語句后將會被清除。也可以利用Clear方法清除。語句格式為:Err.Clear(2)Raise方法:用于產(chǎn)生錯誤,有助于調(diào)試錯誤處理程序。Raise語句的常用形式為:Err.RaiseNumber,Source,Description
第9章調(diào)試和錯誤處理
9.3.1Err對象(2)Raise方法參數(shù)說明:①Number數(shù)值型,指定錯誤號,范圍為0~65535②Source:字符串,指定產(chǎn)生錯誤的對象,可選項③Description:字符串,錯誤信息的簡短描述,可選項例如:模擬產(chǎn)生驅(qū)動器無盤錯誤Err.Raise71,“project1”,“disknotready”
第9章調(diào)試和錯誤處理9.3.2捕獲錯誤使用捕獲錯誤可以獲得錯誤信息,并調(diào)用指定代碼處理錯誤,然后繼續(xù)執(zhí)行程序。使用OnErr語句捕獲錯誤,其語法結(jié)構(gòu)為:
OnErrorGoto標號通常該語句放在過程或函數(shù)的開始位置。如果在過程中激活了錯誤捕獲,只有當過程結(jié)束時才停止。如果需要在過程執(zhí)行中停止錯誤捕獲,可以利用如下語句:
OnErrorGoto0執(zhí)行該語句后,當前過程立即喪失錯誤捕獲功能。
第9章調(diào)試和錯誤處理9.3.3設(shè)計錯誤處理程序設(shè)計錯誤處理程序一般包括三步:1.設(shè)置錯誤捕獲使用Error語句激活捕獲,并指引應(yīng)用程序跳轉(zhuǎn)到標記著錯誤處理例程開始的標號處。2.編寫錯誤處理程序3.退出處理程序當指定的錯誤處理完成后,應(yīng)該指引程序跳轉(zhuǎn)到合適的位置繼續(xù)執(zhí)行。Resume語句用于退出錯誤處理程序,Resume語句有三種用法:①Resume②ResumeNext③Resume標號第9章調(diào)試和錯誤處理9.3.3設(shè)計錯誤處理程序例9.4設(shè)計錯誤處理程序。
PrivateSubCommand1_Click()DimfnameAsStringDimnumAsIntegerDimstrAsStringOnErrorGotoErr1‘設(shè)置捕獲錯誤
fname=“a:\test.dat”Printdir(fname)Exit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代家具設(shè)計人才的培養(yǎng)與教育模式探討
- 酒店照明設(shè)計對顧客用餐心情的影響
- 家庭辦公環(huán)境的衛(wèi)生與健康改善措施
- 臨時勞動合同續(xù)簽協(xié)議
- 臨時工程合作合同范例
- 臨時工雇傭合同協(xié)議
- 中央空調(diào)系統(tǒng)維修保養(yǎng)合同
- 上海商業(yè)地產(chǎn)營銷代理合同
- 交通運輸設(shè)備合作協(xié)議
- 上市公司債券發(fā)行專項法律服務(wù)合同
- 2025年中國X線診斷設(shè)備行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024版全文:中國2型糖尿病預(yù)防及治療指南
- 讀書心得《好老師征服后進生的14堂課》讀后感
- 公路工程施工安全應(yīng)急預(yù)案(4篇)
- 北師大版五年級上冊數(shù)學教學課件第5課時 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
- 高考物理二輪專題課件:“配速法”解決擺線問題
- 檢驗科生物安全風險評估報告
- 京頤得移動門診產(chǎn)品輸液
- 如何做一名合格的帶教老師PPT精選文檔
評論
0/150
提交評論