



版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十五章第十五章 程序調(diào)試與出錯(cuò)處理程序調(diào)試與出錯(cuò)處理 本章要求本章要求: 1. 掌握掌握VB程序調(diào)試方法程序調(diào)試方法 2. 學(xué)會(huì)學(xué)會(huì)查找和修改和分析程序錯(cuò)誤的方法查找和修改和分析程序錯(cuò)誤的方法 3. 了解錯(cuò)誤處理的方法:了解錯(cuò)誤處理的方法:捕捉錯(cuò)誤,設(shè)計(jì)的程序來(lái)處捕捉錯(cuò)誤,設(shè)計(jì)的程序來(lái)處理不同錯(cuò)誤。理不同錯(cuò)誤。 4. 了解程序的打包和發(fā)布。了解程序的打包和發(fā)布。1編譯錯(cuò)誤編譯錯(cuò)誤 指由于違反了VB的有關(guān)語(yǔ)法而產(chǎn)生的錯(cuò)誤(也稱(chēng)語(yǔ)法錯(cuò)誤)。常見(jiàn)的編譯錯(cuò)誤有:15.1 常見(jiàn)錯(cuò)誤類(lèi)型Visual Basic程序的錯(cuò)誤分為:編譯錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤邏輯錯(cuò)誤(1)標(biāo)點(diǎn)符號(hào)錯(cuò)(程序中只能使用西文標(biāo)點(diǎn));關(guān)鍵字輸
2、入錯(cuò)(例:Dim寫(xiě)成Din);一行語(yǔ)句沒(méi)有寫(xiě)完整等, (2)對(duì)象名稱(chēng)()對(duì)象名稱(chēng)(Name屬性)寫(xiě)錯(cuò);屬性)寫(xiě)錯(cuò);(3 3)對(duì)象的屬性名、方法名,內(nèi)部函數(shù)名寫(xiě)錯(cuò);)對(duì)象的屬性名、方法名,內(nèi)部函數(shù)名寫(xiě)錯(cuò);(4 4)變量未定義或變量名寫(xiě)錯(cuò)(可在通用聲明段加)變量未定義或變量名寫(xiě)錯(cuò)(可在通用聲明段加Option Explicit,采用變量顯式聲明);,采用變量顯式聲明);(3 3)塊)塊If沒(méi)有對(duì)應(yīng)的沒(méi)有對(duì)應(yīng)的End If語(yǔ)句;語(yǔ)句;For循環(huán)沒(méi)有對(duì)應(yīng)的循環(huán)沒(méi)有對(duì)應(yīng)的Next語(yǔ)語(yǔ)句;句;Do循環(huán)沒(méi)有對(duì)應(yīng)的循環(huán)沒(méi)有對(duì)應(yīng)的Loop語(yǔ)句等,這類(lèi)錯(cuò)誤當(dāng)語(yǔ)句等,這類(lèi)錯(cuò)誤當(dāng)VB開(kāi)始運(yùn)開(kāi)始運(yùn)行時(shí)提示出錯(cuò)信息,且將
3、出錯(cuò)位置用反色顯示,行時(shí)提示出錯(cuò)信息,且將出錯(cuò)位置用反色顯示,2 運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤 VB在運(yùn)行代碼時(shí)指令代碼執(zhí)行了一非法操作引起的在運(yùn)行代碼時(shí)指令代碼執(zhí)行了一非法操作引起的誤指。例如,除法時(shí)分母為零,被操作的驅(qū)動(dòng)器未準(zhǔn)備好誤指。例如,除法時(shí)分母為零,被操作的驅(qū)動(dòng)器未準(zhǔn)備好或磁盤(pán)讀寫(xiě)有錯(cuò)?;驍?shù)組下標(biāo)超界、數(shù)據(jù)溢出等?;虼疟P(pán)讀寫(xiě)有錯(cuò)。或數(shù)組下標(biāo)超界、數(shù)據(jù)溢出等。運(yùn)行出錯(cuò)也將彈出一個(gè)子窗口,提示出錯(cuò)信息。運(yùn)行出錯(cuò)也將彈出一個(gè)子窗口,提示出錯(cuò)信息。3 邏輯錯(cuò)誤邏輯錯(cuò)誤 程序存在邏輯上的缺陷引起程序運(yùn)行后,得不到所期望的結(jié)果。 例如,使用了不正確的變量類(lèi)型或指令的次序不對(duì)。又如,循環(huán)中起終值不正確。邏輯
4、錯(cuò)誤也可以產(chǎn)生運(yùn)行錯(cuò)誤。通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,需要程序員仔細(xì)地閱讀分析程序。15.2 VB6.0系統(tǒng)調(diào)試工具系統(tǒng)調(diào)試工具15.2.1 設(shè)置自動(dòng)語(yǔ)法檢測(cè)設(shè)置自動(dòng)語(yǔ)法檢測(cè) 在在VB集成開(kāi)發(fā)環(huán)集成開(kāi)發(fā)環(huán)境中,選擇境中,選擇“工具工具”菜菜單的單的“選項(xiàng)選項(xiàng)”命令,再命令,再在打開(kāi)的在打開(kāi)的“選項(xiàng)選項(xiàng)”對(duì)話(huà)對(duì)話(huà)框中選框中選“編輯器編輯器”標(biāo)簽,標(biāo)簽, 15.2.2 VB調(diào)試工具調(diào)試工具 Visual Basic 的調(diào)試包括:斷點(diǎn)、中斷表達(dá)式、監(jiān)視表達(dá)式、通過(guò)代碼一次經(jīng)過(guò)一個(gè)語(yǔ)句或一個(gè)過(guò)程、顯示變量和屬性的值。 1、 調(diào)試工具欄調(diào)試工具欄15.3 調(diào)試和排錯(cuò)方法調(diào)試和排錯(cuò)方法15.3.1
5、VB的三種工作模式的三種工作模式 設(shè)計(jì)模式、運(yùn)行模式和中斷模式15.3.2 控制程序的運(yùn)行控制程序的運(yùn)行1 1啟動(dòng)對(duì)象及控制程序的運(yùn)行啟動(dòng)對(duì)象及控制程序的運(yùn)行(1)逐語(yǔ)句運(yùn)行(2)逐過(guò)程運(yùn)行(3)從過(guò)程中跳出 2 2 設(shè)置斷點(diǎn)設(shè)置斷點(diǎn)15.3.3 程序調(diào)試窗口程序調(diào)試窗口 有三個(gè)調(diào)試窗口,它們是:“立即”窗口、“監(jiān)視”窗口、和“本地”窗口??蓡螕粢晥D菜單中的對(duì)應(yīng)命令打開(kāi)這些窗口。 (1)“立即”窗口 顯示代碼中正在調(diào)試的語(yǔ)句所產(chǎn)生的信息,或直接往窗口中鍵入的命令所請(qǐng)求的信息。 (2)在中斷模式下,可自動(dòng)顯示出所有在當(dāng)前過(guò)程中的變量聲明及變量值。(單擊調(diào)試工具欄上的“本地窗口”按扭或選擇“視圖”
6、菜單的“本地窗口”顯示),如圖15-8所示。 (3) “監(jiān)視”窗口顯示當(dāng)前的監(jiān)視表達(dá)式,在代碼運(yùn)行過(guò)程中可決定是否監(jiān)控這些表達(dá)式的值。 例例15.115.1、調(diào)試第六章例6.4傳值、傳址例題,觀察變量的虛實(shí)結(jié)合過(guò)程。15.4 出錯(cuò)處理出錯(cuò)處理 所謂錯(cuò)誤處理,就是允許編寫(xiě)的應(yīng)用程序?qū)﹀e(cuò)誤進(jìn)行響應(yīng)。當(dāng)一個(gè)錯(cuò)誤發(fā)生了,程序能捕捉到這一錯(cuò)誤,并可按程序設(shè)計(jì)者事先設(shè)計(jì)的方法來(lái)處理這一錯(cuò)誤。常規(guī)下通過(guò)以下步驟在應(yīng)用程序中增加指令捕捉和處理運(yùn)行錯(cuò)誤:1、設(shè)置錯(cuò)誤陷阱、設(shè)置錯(cuò)誤陷阱 在程序適當(dāng)?shù)牡胤郊尤胍恍┱Z(yǔ)句來(lái)捕捉錯(cuò)誤,一旦錯(cuò)誤發(fā)生,程序的運(yùn)行將轉(zhuǎn)移到錯(cuò)誤處理程序,根據(jù)所捕獲到的錯(cuò)誤代碼告訴應(yīng)用程序應(yīng)當(dāng)怎樣
7、操作。2、編寫(xiě)錯(cuò)誤處理程序、編寫(xiě)錯(cuò)誤處理程序 當(dāng)程序中出現(xiàn)運(yùn)行錯(cuò)誤時(shí),程序的運(yùn)行將轉(zhuǎn)到錯(cuò)誤處理程序,錯(cuò)誤處理程序根據(jù)可預(yù)知的錯(cuò)誤類(lèi)型決定采取何種措施。 1 設(shè)置錯(cuò)誤陷阱 使用On Error語(yǔ)句可設(shè)置陷阱,捕捉錯(cuò)誤。On Error語(yǔ)句有如下形式: (1) On Error Resume Next發(fā)生錯(cuò)誤時(shí),忽略錯(cuò)誤行,繼續(xù)執(zhí)行下一語(yǔ)句。 (2) On Error GoTo 語(yǔ)句標(biāo)號(hào)語(yǔ)句標(biāo)號(hào)發(fā)生錯(cuò)誤時(shí),使程序轉(zhuǎn)跳到語(yǔ)句標(biāo)號(hào)所指示的程序塊。 (3) On Error GoTo 0表示當(dāng)發(fā)生錯(cuò)誤時(shí),不使用錯(cuò)誤處理程序塊。 2編寫(xiě)錯(cuò)誤處理程序 編寫(xiě)錯(cuò)誤處理程序一般要使用到Err 對(duì)象,它是一個(gè)系統(tǒng)對(duì)
8、象,可以通過(guò)Err對(duì)象來(lái)獲取錯(cuò)誤的消息。當(dāng)出現(xiàn)VB錯(cuò)誤時(shí),有關(guān)錯(cuò)誤的信息存儲(chǔ)在Err對(duì)象中。Err對(duì)象每次只維護(hù)一個(gè)錯(cuò)誤的信息。當(dāng)出現(xiàn)新的錯(cuò)誤時(shí),Err對(duì)象將更新為新的錯(cuò)誤信息。Err 對(duì)象的缺省屬性是Number屬性。當(dāng)運(yùn)行時(shí)錯(cuò)誤發(fā)生時(shí),Err對(duì)象的屬性被填入明確識(shí)別錯(cuò)誤的信息以及處理這個(gè)錯(cuò)誤所使用的信息。 當(dāng)On Error捕捉到錯(cuò)誤后,Err對(duì)象的屬性Number指示對(duì)應(yīng)錯(cuò)誤號(hào)。在錯(cuò)誤處理程序塊中可使用“Select Case Err.Number”或“If Err.Number = ”語(yǔ)句編寫(xiě)出錯(cuò)處理。 例如,下面的例如,下面的Test過(guò)程是過(guò)程是Number 屬性在錯(cuò)誤處理過(guò)屬性在錯(cuò)
9、誤處理過(guò)程中的典型用法。程中的典型用法。 Private Sub test()ub test() On Error GoTo On Error GoTo out out Dim x, y Dim x, y x = 1 / y x = 1 / y 引發(fā)一個(gè)引發(fā)一個(gè)“除以零除以零”的錯(cuò)誤的錯(cuò)誤 Exit SubExit Sub out: out: MsgBox MsgBox Err.Number Err.Number MsgBoxMsgBox Err.Description Err.Description 檢查是否發(fā)生檢查是否發(fā)生“除以零除以零”的錯(cuò)誤的錯(cuò)誤 If Err.Number = 11
10、ThenIf Err.Number = 11 Then y = y + 1 y = y + 1 End If End If Resume ResumeEnd SubEnd Sub3 3退出錯(cuò)誤處理退出錯(cuò)誤處理在錯(cuò)誤處理程序中,當(dāng)遇到 Exit Sub、Exit Function、End Sub、End Function等語(yǔ)句時(shí),將退出錯(cuò)誤捕獲。在錯(cuò)誤處理程序結(jié)束后,要恢復(fù)原有的運(yùn)行??捎肦esume 語(yǔ)句。語(yǔ)法:(1)Resume 重新執(zhí)行產(chǎn)生錯(cuò)誤的語(yǔ)句(2)Resume Next 重新執(zhí)行產(chǎn)生錯(cuò)誤的語(yǔ)句的下一語(yǔ)句(3)Resume 語(yǔ)句標(biāo)號(hào) 從語(yǔ)句標(biāo)號(hào)初恢復(fù)執(zhí)行 一般來(lái)說(shuō),一些可以修正的錯(cuò)誤
11、,可使用 Resume,而在錯(cuò)誤處理程序不能修正錯(cuò)誤時(shí)使用 Resume Next或Resume 語(yǔ)句標(biāo)號(hào)。 例例15.2 15.2 編寫(xiě)一個(gè)判斷一個(gè)給定的文件是否存在的函數(shù),并能處理無(wú)效驅(qū)動(dòng)器或軟盤(pán)驅(qū)動(dòng)器沒(méi)有磁盤(pán)等設(shè)備出錯(cuò)問(wèn)題。 例例15.3 15.3 編寫(xiě)簡(jiǎn)單的錯(cuò)誤處理程序。處理當(dāng)在文本中輸入數(shù)據(jù)超過(guò)整型數(shù)的最大值32767時(shí)給出錯(cuò)誤提示,并可重新輸入。15.5 生成執(zhí)行文件和制作安裝程序生成執(zhí)行文件和制作安裝程序15.5.1 生成執(zhí)行文件生成執(zhí)行文件 從“文件”菜單中選取“生成projectname.exe”,將打開(kāi)“生成工程”對(duì)話(huà)框,如圖15-17所示。這里“projectname” 是工程的應(yīng)用程序名。 15.5.2 使用安裝向?qū)?chuàng)建安裝程序使用安裝向?qū)?chuàng)建安裝程序 為應(yīng)用程序制作安裝程序,打包是創(chuàng)建一個(gè)軟件包的操作,該軟
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭教育政策的未來(lái)發(fā)展趨勢(shì)預(yù)測(cè)
- 教育政策背景下教師職業(yè)發(fā)展現(xiàn)狀分析
- 中職數(shù)學(xué)課件下載
- 醫(yī)療健康中的教育心理學(xué)引導(dǎo)患者自主康復(fù)
- 醫(yī)療繼續(xù)教育培訓(xùn)與教育心理學(xué)的關(guān)系
- 從心理學(xué)角度探討學(xué)生的學(xué)習(xí)動(dòng)力來(lái)源
- 教育心理學(xué)在提升學(xué)生自主學(xué)習(xí)能力中的作用
- 智慧城市公共安全體系建設(shè)及營(yíng)銷(xiāo)規(guī)劃
- 教育心理學(xué)視角下的教育改革方向探索
- 教育地產(chǎn)的未來(lái)規(guī)劃與布局
- 北京石油化工學(xué)院大一高等數(shù)學(xué)上冊(cè)期末考試卷及答案
- 公路基本建設(shè)工程概算、預(yù)算編制辦法交公路發(fā)〔1996〕
- 腦卒中的早期護(hù)理和康復(fù)
- 九宮格智力數(shù)獨(dú)200題(題+答案)
- 消防新聞寫(xiě)作培訓(xùn)課件
- 國(guó)家電網(wǎng)公司施工項(xiàng)目部標(biāo)準(zhǔn)化工作手冊(cè)
- 言語(yǔ)治療練習(xí)卷附答案
- 湖州旺盟生物科技有限公司年產(chǎn)3億個(gè)環(huán)保可降解紙容器、1500噸食品用降解材料塑料包裝容器項(xiàng)目環(huán)境影響報(bào)告
- AQL抽樣標(biāo)準(zhǔn)表完整
- 站臺(tái)雨棚施工方案
- MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論