版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第13章 程序調(diào)試和錯(cuò)誤處理,目 錄,13.1 錯(cuò)誤類型 13.2 代碼調(diào)試 13.3 錯(cuò)誤處理,13.1 錯(cuò)誤類型,Visual Basic程序設(shè)計(jì)中常見的錯(cuò)誤類型可以分為三種:語法錯(cuò)誤(Syntax Errors)、運(yùn)行錯(cuò)誤(RunTime Errors)及程序邏輯錯(cuò)誤(Logic Errors)。,13.1 錯(cuò)誤類型,1.語法錯(cuò)誤 語法錯(cuò)誤是指在編譯時(shí)出現(xiàn)的錯(cuò)誤,是最常見的一種錯(cuò)誤類型。它主要是由于代碼編寫時(shí)不符合VB的語法要求引起的,比如拼錯(cuò)關(guān)鍵字、丟失關(guān)鍵字、非法標(biāo)點(diǎn)符號(hào)和遺漏了標(biāo)點(diǎn)符號(hào)、函數(shù)調(diào)用時(shí)一些必須配對(duì)的關(guān)鍵字沒有成對(duì)出現(xiàn)等。 Visual Basic應(yīng)用程序在編譯時(shí)會(huì)自動(dòng)檢
2、測是否存在語法錯(cuò)誤。如果發(fā)現(xiàn)了這類錯(cuò)誤,會(huì)紅色高亮顯示發(fā)生錯(cuò)誤的語法行,提示程序員進(jìn)行更正。,13.1 錯(cuò)誤類型,2.運(yùn)行錯(cuò)誤 運(yùn)行錯(cuò)誤時(shí)指應(yīng)用程序在運(yùn)行期間執(zhí)行了非法操作或數(shù)據(jù)庫連接有問題等情況,就會(huì)導(dǎo)致運(yùn)行錯(cuò)誤。發(fā)生這類錯(cuò)誤的程序一般語法沒有錯(cuò)誤,編譯能夠通過,只有在運(yùn)行時(shí)才出錯(cuò),例如類型不匹配、除數(shù)為0、訪問不存在的文件、數(shù)組的下標(biāo)越界等。出現(xiàn)錯(cuò)誤時(shí),程序會(huì)自動(dòng)中斷,同時(shí)給出相應(yīng)的錯(cuò)誤提示信息。,13.1 錯(cuò)誤類型,3.邏輯錯(cuò)誤 邏輯錯(cuò)誤指的是程序可以正常執(zhí)行,但是無法得到用戶所希望的結(jié)果。這并不是程序語句的錯(cuò)誤,而是由于程序設(shè)計(jì)時(shí)本身存在邏輯缺陷所致。例如定義了錯(cuò)誤的變量類型,或者在程
3、序中出現(xiàn)了不正確的循環(huán)次數(shù)或死循環(huán)等等。大多數(shù)邏輯錯(cuò)誤不容易發(fā)覺是在哪一條語句發(fā)生的,而卻錯(cuò)誤產(chǎn)生的原因與產(chǎn)生錯(cuò)誤結(jié)果的語句之間可能隔有多條語句,因而難以發(fā)現(xiàn)。Visual Basic提供了程序調(diào)試功能以便程序員能夠查找該類錯(cuò)誤的根源。,13.2 代碼調(diào)試,13.2.1 Visual Basic三種模式 13.2.2 調(diào)試工具 13.2.3 調(diào)試窗口 13.2.4 調(diào)試方法,13.2.1 Visual Basic三種模式,Visual Basic具有集程序編輯、解釋和運(yùn)行于一體的集成環(huán)境。按其工作狀態(tài)可分為三種模式:設(shè)計(jì)模式、運(yùn)行模式及中斷模式。 1.設(shè)計(jì)模式 設(shè)計(jì)模式是代碼在編寫過程所在的模
4、式。在該模式下,可以進(jìn)行程序的界面和代碼編寫。在此階段,根絕設(shè)計(jì)目標(biāo)的不同,不同的代碼被寫在相應(yīng)的模塊里。當(dāng)要執(zhí)行一個(gè)程序時(shí),可以單擊“運(yùn)行”菜單中的“開始”命令,或者按F5功能鍵。當(dāng)程序處于設(shè)計(jì)模式時(shí),除了可以設(shè)置斷點(diǎn)和創(chuàng)建監(jiān)視表達(dá)式外,不能使用其它調(diào)試工具。,13.2.1 Visual Basic三種模式,2.運(yùn)行模式 當(dāng)代碼編寫完成后就進(jìn)入了運(yùn)行模式,在運(yùn)行模式下,程序處于運(yùn)行狀態(tài),此時(shí)可以查看程序代碼或者與應(yīng)用程序?qū)υ?,但不能修改程序。單擊“運(yùn)行”菜單中的“結(jié)束”命令可以使之由運(yùn)行狀態(tài)轉(zhuǎn)到設(shè)計(jì)狀態(tài)。用“運(yùn)行”菜單中的“中斷”命令或者按下Ctrl+Break組合鍵就進(jìn)入了中斷模式。,13
5、.2.1 Visual Basic三種模式,3.中斷模式 中斷模式使運(yùn)行中的程序處于掛起狀態(tài)。一旦發(fā)生了錯(cuò)誤,就應(yīng)進(jìn)入中斷模式來調(diào)試代碼。在此模式下,可以使用各種調(diào)試工具,如設(shè)置斷點(diǎn)、改變某變量的值、觀察某變量的值等,以便發(fā)現(xiàn)或者更正錯(cuò)誤。,13.2.1 Visual Basic三種模式,以下情況的發(fā)生時(shí)都會(huì)使程序自動(dòng)地進(jìn)入中斷模式: (1)語句產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。(2)“添加監(jiān)視”對(duì)話框中定義的中斷條件為真時(shí)(與定義方式有關(guān))。(3)執(zhí)行到一個(gè)設(shè)有斷點(diǎn)的代碼行。(4)執(zhí)行“運(yùn)行”菜單中的“中斷”命令或單擊“ Ctrl+Break”鍵。,13.2.1 Visual Basic三種模式,要從中斷模式
6、返回到設(shè)計(jì)模式,有下列兩種方法。(1)選擇“運(yùn)行”菜單中的“結(jié)束”菜單項(xiàng)。(2)單擊“調(diào)試”工具欄的“結(jié)束”按鈕。 要從中斷模式重新進(jìn)入運(yùn)行模式,有下列三種方法。(1)選擇“運(yùn)行”菜單中的“繼續(xù)”菜單項(xiàng)。(2)單擊“調(diào)試”工具欄的“繼續(xù)”按鈕(在中斷模式下,“啟動(dòng)”按鈕變?yōu)椤袄^續(xù)”按鈕)。(3)使用快捷鍵 F5。,13.2.2 調(diào)試工具,調(diào)試工具的功能是提供應(yīng)用程序的當(dāng)前狀態(tài),以便程序員分析代碼的運(yùn)行過程,了解變量、表達(dá)式和屬性值的變化情況。有了調(diào)試工具,程序員就能深入到應(yīng)用程序內(nèi)部去觀察程序的運(yùn)行過程和運(yùn)行狀態(tài)。 Visual Basic提供的調(diào)試功能設(shè)置在“調(diào)試”菜單下,如圖13-3所示。
7、,13.2.2 調(diào)試工具,調(diào)試工具包括斷點(diǎn)、中斷表達(dá)式、監(jiān)視表達(dá)式、逐語句運(yùn)行、逐過程運(yùn)行、顯示變量和屬性的值等。此外Visual Basic還提供了一個(gè)專用的程序調(diào)試工具欄,如圖13-4所示。,13.2.2 調(diào)試工具,在“視圖”菜單下選擇“工具欄”菜單項(xiàng)下“調(diào)試”,可以打開調(diào)試工具欄。表13-1闡述了每個(gè)調(diào)試工具的作用。,13.2.3 調(diào)試窗口,在中斷模式下,利用調(diào)試窗口可以觀察有關(guān)變量的值。Visual Basic提供了“立即”、“本地”、“監(jiān)視”三種調(diào)試窗口。 1.“立即”窗口 “立即”窗口可以在中斷模式下自動(dòng)激活,還可以通過其他方法打開。如單擊“調(diào)試”工具條上的“立即窗口”按鈕、執(zhí)行“
8、視圖”工具條上的“立即窗口”命令、或者按下Ctrl+G快捷鍵。該窗口是最方便、最常用窗口。,13.2.3 調(diào)試窗口,立即窗口的使用有兩種方法。 (1)可以在程序代碼中利用Debug.Print方法,把輸出送到“立即”窗口: 例如:debug.print “a=”;a (2)設(shè)置某程序行為斷點(diǎn)后,可以直接在窗口輸入語句,如輸入“?a”,則可將變量a的值顯示在窗體上,因此,立即窗口可以在中斷狀態(tài)下使用。在運(yùn)行狀態(tài)時(shí)可以在窗口輸入代碼,來測試某個(gè)命令的使用。,13.2.3 調(diào)試窗口,2.“監(jiān)視”窗口 “監(jiān)視”窗口在代碼運(yùn)行過程中監(jiān)控并顯示當(dāng)前監(jiān)視表達(dá)式的值。在中斷狀態(tài)下,可以使用監(jiān)視窗口顯示當(dāng)前的某
9、個(gè)變量或表達(dá)式的值。在使用監(jiān)視窗口監(jiān)視表達(dá)式的值時(shí),應(yīng)首先利用“調(diào)試”菜單的“添加監(jiān)視命令”或“快速監(jiān)視”命令添加監(jiān)視表達(dá)式及設(shè)置監(jiān)視類型。如圖13-5和圖13-6所示,13.2.3 調(diào)試窗口,3.“本地”窗口 “本地”窗口只顯示當(dāng)前過程中所有變量和對(duì)象值,只在中斷模式下可用,在設(shè)計(jì)和運(yùn)行時(shí)均不可用。當(dāng)程序的執(zhí)行從一個(gè)過程切換到另一個(gè)過程時(shí),本地窗口的內(nèi)容也會(huì)隨之發(fā)生相應(yīng)的變化,即它只反映當(dāng)前過程中可用的變量,如圖13-7所示,13.2.4 調(diào)試方法,1.中斷程序 中斷程序的執(zhí)行是指當(dāng)程序運(yùn)行到某一行語句時(shí),就進(jìn)入中斷狀態(tài),不再繼續(xù)執(zhí)行。這樣程序員就可以在中斷狀態(tài)下調(diào)試程序。常用的方法是通過設(shè)
10、置斷點(diǎn)來實(shí)現(xiàn),有關(guān)斷點(diǎn)的相關(guān)操作包括以下幾種:,13.2.4 調(diào)試方法,(1)設(shè)置斷點(diǎn): 將插入點(diǎn)放在要設(shè)置斷點(diǎn)的行,然后使用下述操作之一便可為該行設(shè)置斷點(diǎn): 選擇“調(diào)試”菜單中的“切換斷點(diǎn)”命令; 單擊調(diào)試工具欄中的按鈕; 按F9鍵 為某一行設(shè)置了斷點(diǎn)后,該行代碼將以紅底白字顯示,并在左側(cè)邊界指示條中出現(xiàn)一個(gè)紅色的圓圈,表示這一行代碼已被設(shè)置了斷點(diǎn)。如圖13-8所示:,13.2.4 調(diào)試方法,(2)清除斷點(diǎn) 對(duì)已設(shè)置斷點(diǎn)的行,再執(zhí)行和上面相同的操作便可清除已有的斷點(diǎn)。 (3)清除所有斷點(diǎn) 選擇“調(diào)試”菜單中的“清除所有斷點(diǎn)”命令。或按“Ctrl+Shift+F9”鍵。,13.2.4 調(diào)試方法
11、,2.單步調(diào)試 所謂單步調(diào)試即逐個(gè)語句或逐個(gè)過程地執(zhí)行程序,程序每執(zhí)行完一條語句或一個(gè)過程,就發(fā)生中斷。 (1)逐語句執(zhí)行 此項(xiàng)操作是逐條語句地執(zhí)行代碼,即每次運(yùn)行一行代碼。當(dāng)進(jìn)入到過程中時(shí),也將在該過程中逐條語句執(zhí)行代碼。 逐條語句執(zhí)行代碼有下面三種方法: 選擇“調(diào)試”菜單中的“逐語句”命令; 單擊調(diào)試工具欄中的按鈕; 按F8鍵。,13.2.4 調(diào)試方法,當(dāng)逐語句執(zhí)行代碼時(shí),執(zhí)行點(diǎn)將移動(dòng)到下一行,且該行將以黃底黑字顯示,而且,在左側(cè)的邊界指示條中還會(huì)出現(xiàn)一個(gè)黃色的箭頭。如圖13-9所示,13.2.4 調(diào)試方法,(2)逐過程執(zhí)行 此項(xiàng)操作單步執(zhí)行代碼,如果碰到過程調(diào)用,則不進(jìn)入該過程,也就是說
12、,將過程調(diào)用看作一行語句來執(zhí)行。 逐過程執(zhí)行有下面三種方法: 選擇“調(diào)試”菜單中的“逐過程”命令; 單擊調(diào)試工具欄中的按鈕; 按Shift+F8鍵。,13.2.4 調(diào)試方法,(3)跳出過程 此項(xiàng)操作將當(dāng)前過程中執(zhí)行點(diǎn)后面的語句全部執(zhí)行,并將下一執(zhí)行點(diǎn)定位在調(diào)用該過程的語句的下一行。 跳出過程有下面三種方法: 選擇“調(diào)試”菜單中的“跳出”命令; 單擊調(diào)試工具欄中的按鈕; 按CTRL+Shift+F8鍵。,13.3 錯(cuò)誤處理,利用Visual Basic調(diào)試工具能夠排除程序代碼中的錯(cuò)誤,但是卻無法處理在程序運(yùn)行過程中由于運(yùn)行環(huán)境、資源使用等因素引起的錯(cuò)誤。為了避免這種錯(cuò)誤,應(yīng)用程序本身就應(yīng)當(dāng)具有一
13、定的錯(cuò)誤捕獲與錯(cuò)誤處理功能,也就是設(shè)計(jì)專門能夠用于錯(cuò)誤處理的程序,為此Visual Basic提供了一系列錯(cuò)誤捕獲與錯(cuò)誤處理的語句和函數(shù)。 錯(cuò)誤處理程序由錯(cuò)誤陷阱、錯(cuò)誤處理和退出處理三部分組成,通過錯(cuò)誤捕獲語句、恢復(fù)語句以及有關(guān)的錯(cuò)誤處理函數(shù)和語句來實(shí)現(xiàn)。,13.3 錯(cuò)誤處理,Visual Basic提供了On Error語句設(shè)置錯(cuò)誤陷阱,捕捉錯(cuò)誤。On Error語句有三種形式,語法是: (1)On Error GoTo 行號(hào)|標(biāo)號(hào) 功能:該語句用來設(shè)置錯(cuò)誤陷阱,并指定錯(cuò)誤處理子程序的入口?!靶刑?hào)”或者“標(biāo)號(hào)”是錯(cuò)誤處理子程序的入口,位于錯(cuò)誤處理子程序的第一行。 例如:On Error GoTo 100 指發(fā)生錯(cuò)誤時(shí),跳到從行號(hào)100開始的錯(cuò)誤處理子程序。,13.3 錯(cuò)誤處理,(2)On Error Resume Next 當(dāng)程序發(fā)生錯(cuò)誤時(shí),程序不會(huì)終止執(zhí)行,而是忽略錯(cuò)誤,繼續(xù)執(zhí)行出錯(cuò)語句的下一條語句。 (3)On Error GoTo 0 取消程序中先前設(shè)定的錯(cuò)誤陷阱。,1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工內(nèi)操培訓(xùn)
- 系統(tǒng)性能優(yōu)化策略指南
- 2026年上海市虹口區(qū)初三上學(xué)期一模數(shù)學(xué)試卷和參考答案
- 飛行員英語面試培訓(xùn)課件
- 11月PMI數(shù)據(jù)點(diǎn)評(píng):制造業(yè)PMI邊際改善復(fù)蘇持續(xù)性仍需夯實(shí)
- 飛機(jī)維修技術(shù)課程
- 飛機(jī)的技術(shù)教學(xué)課件
- 2026江蘇蘇州工業(yè)園區(qū)華林幼兒園后勤輔助人員招聘1人參考考試題庫及答案解析
- 2026安徽蚌埠市固鎮(zhèn)縣楊廟鎮(zhèn)面向全縣選聘村黨組織書記后備力量4人備考考試題庫及答案解析
- 2026年1月?lián)P州市衛(wèi)生健康系統(tǒng)事業(yè)單位公開招聘專業(yè)技術(shù)人員54人備考考試試題及答案解析
- 2024至2030年高強(qiáng)度快硬硫鋁酸鹽水泥項(xiàng)目投資價(jià)值分析報(bào)告
- 制造業(yè)企業(yè)質(zhì)量管理能力評(píng)估規(guī)范
- 13J933-2體育場地與設(shè)施(二)
- DL-T-710-2018水輪機(jī)運(yùn)行規(guī)程
- 電機(jī)常見故障分析及處理措施
- HGT 20714-2023 管道及儀表流程圖(P ID)安全審查規(guī)范 (正式版)
- 《叉車安全作業(yè)培訓(xùn)》課件
- 技術(shù)入股合作協(xié)議合同
- 建筑砌筑工(中級(jí))理論考試題庫及答案
- 【基于哈佛分析框架下云南宣威火腿公司的財(cái)務(wù)報(bào)表分析研究10000字】
- 高通量測序與腫瘤課題思路演示文稿
評(píng)論
0/150
提交評(píng)論