程序調(diào)試與出錯(cuò)處理_第1頁(yè)
程序調(diào)試與出錯(cuò)處理_第2頁(yè)
程序調(diào)試與出錯(cuò)處理_第3頁(yè)
程序調(diào)試與出錯(cuò)處理_第4頁(yè)
程序調(diào)試與出錯(cuò)處理_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第十五章 程序調(diào)試與出錯(cuò)處理,本章要求: 1. 掌握VB程序調(diào)試方法 2. 學(xué)會(huì)查找和修改和分析程序錯(cuò)誤的方法 3. 了解錯(cuò)誤處理的方法:捕捉錯(cuò)誤,設(shè)計(jì)的程序來(lái)處理不同錯(cuò)誤。 4. 了解程序的打包和發(fā)布。,1編譯錯(cuò)誤 指由于違反了VB的有關(guān)語(yǔ)法而產(chǎn)生的錯(cuò)誤(也稱語(yǔ)法錯(cuò)誤)。常見的編譯錯(cuò)誤有:,15.1 常見錯(cuò)誤類型,Visual Basic程序的錯(cuò)誤分為: 編譯錯(cuò)誤 運(yùn)行時(shí)錯(cuò)誤 邏輯錯(cuò)誤,(1)標(biāo)點(diǎn)符號(hào)錯(cuò)(程序中只能使用西文標(biāo)點(diǎn));關(guān)鍵字輸入錯(cuò)(例:Dim寫成Din);一行語(yǔ)句沒有寫完整等,,(2)對(duì)象名稱(Name屬性)寫錯(cuò); (3)對(duì)象的屬性名、方法名,內(nèi)部函數(shù)名寫錯(cuò); (4)變量未定義或

2、變量名寫錯(cuò)(可在通用聲明段加Option Explicit,采用變量顯式聲明); (3)塊If沒有對(duì)應(yīng)的End If語(yǔ)句;For循環(huán)沒有對(duì)應(yīng)的Next語(yǔ)句;Do循環(huán)沒有對(duì)應(yīng)的Loop語(yǔ)句等,這類錯(cuò)誤當(dāng)VB開始運(yùn)行時(shí)提示出錯(cuò)信息,且將出錯(cuò)位置用反色顯示,,2 運(yùn)行錯(cuò)誤 VB在運(yùn)行代碼時(shí)指令代碼執(zhí)行了一非法操作引起的誤指。例如,除法時(shí)分母為零,被操作的驅(qū)動(dòng)器未準(zhǔn)備好或磁盤讀寫有錯(cuò)?;驍?shù)組下標(biāo)超界、數(shù)據(jù)溢出等。 運(yùn)行出錯(cuò)也將彈出一個(gè)子窗口,提示出錯(cuò)信息。,3 邏輯錯(cuò)誤 程序存在邏輯上的缺陷引起程序運(yùn)行后,得不到所期望的結(jié)果。 例如,使用了不正確的變量類型或指令的次序不對(duì)。又如,循環(huán)中起終值不正確。邏

3、輯錯(cuò)誤也可以產(chǎn)生運(yùn)行錯(cuò)誤。通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,需要程序員仔細(xì)地閱讀分析程序。,15.2 VB6.0系統(tǒng)調(diào)試工具,15.2.1 設(shè)置自動(dòng)語(yǔ)法檢測(cè),在VB集成開發(fā)環(huán)境中,選擇“工具”菜單的“選項(xiàng)”命令,再在打開的“選項(xiàng)”對(duì)話框中選“編輯器”標(biāo)簽,,15.2.2 VB調(diào)試工具,Visual Basic 的調(diào)試包括:斷點(diǎn)、中斷表達(dá)式、監(jiān)視表達(dá)式、通過代碼一次經(jīng)過一個(gè)語(yǔ)句或一個(gè)過程、顯示變量和屬性的值。,1、 調(diào)試工具欄,15.3 調(diào)試和排錯(cuò)方法,15.3.1 VB的三種工作模式,設(shè)計(jì)模式、運(yùn)行模式和中斷模式,15.3.2 控制程序的運(yùn)行,1啟動(dòng)對(duì)象及控制程序的運(yùn)行,(1)逐語(yǔ)句運(yùn)行,(

4、2)逐過程運(yùn)行,(3)從過程中跳出,2 設(shè)置斷點(diǎn),15.3.3 程序調(diào)試窗口 有三個(gè)調(diào)試窗口,它們是:“立即”窗口、“監(jiān)視”窗口、和“本地”窗口??蓡螕粢晥D菜單中的對(duì)應(yīng)命令打開這些窗口。,(1)“立即”窗口 顯示代碼中正在調(diào)試的語(yǔ)句所產(chǎn)生的信息,或直接往窗口中鍵入的命令所請(qǐng)求的信息。,(2)在中斷模式下,可自動(dòng)顯示出所有在當(dāng)前過程中的變量聲明及變量值。(單擊調(diào)試工具欄上的“本地窗口”按扭或選擇“視圖”菜單的“本地窗口”顯示),如圖15-8所示。,(3) “監(jiān)視”窗口顯示當(dāng)前的監(jiān)視表達(dá)式,在代碼運(yùn)行過程中可決定是否監(jiān)控這些表達(dá)式的值。,例15.1、調(diào)試第六章例6.4傳值、傳址例題,觀察變量的虛實(shí)

5、結(jié)合過程。,15.4 出錯(cuò)處理,所謂錯(cuò)誤處理,就是允許編寫的應(yīng)用程序?qū)﹀e(cuò)誤進(jìn)行響應(yīng)。當(dāng)一個(gè)錯(cuò)誤發(fā)生了,程序能捕捉到這一錯(cuò)誤,并可按程序設(shè)計(jì)者事先設(shè)計(jì)的方法來(lái)處理這一錯(cuò)誤。常規(guī)下通過以下步驟在應(yīng)用程序中增加指令捕捉和處理運(yùn)行錯(cuò)誤: 1、設(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)怎樣操作。 2、編寫錯(cuò)誤處理程序 當(dāng)程序中出現(xiàn)運(yùn)行錯(cuò)誤時(shí),程序的運(yùn)行將轉(zhuǎn)到錯(cuò)誤處理程序,錯(cuò)誤處理程序根據(jù)可預(yù)知的錯(cuò)誤類型決定采取何種措施。,1 設(shè)置錯(cuò)誤陷阱 使用On Error語(yǔ)句可設(shè)置陷阱,捕捉錯(cuò)誤。On Error語(yǔ)句有如

6、下形式: (1) On Error Resume Next 發(fā)生錯(cuò)誤時(shí),忽略錯(cuò)誤行,繼續(xù)執(zhí)行下一語(yǔ)句。 (2) On Error GoTo 語(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編寫錯(cuò)誤處理程序 編寫錯(cuò)誤處理程序一般要使用到Err 對(duì)象,它是一個(gè)系統(tǒng)對(duì)象,可以通過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í),

7、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ǔ)句編寫出錯(cuò)處理。,例如,下面的Test過程是Number 屬性在錯(cuò)誤處理過程中的典型用法。,Private Sub test() On Error GoTo out Dim x, y x = 1 / y 引發(fā)一個(gè)“除以零”的錯(cuò)誤 Exit Sub out: MsgBox Err.Number MsgBox Err.Description

8、檢查是否發(fā)生“除以零”的錯(cuò)誤 If Err.Number = 11 Then y = y + 1 End If Resume End Sub,3退出錯(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ò)誤,可使用 Resume,而在錯(cuò)誤處理程序

9、不能修正錯(cuò)誤時(shí)使用 Resume Next或Resume 語(yǔ)句標(biāo)號(hào)。,例15.2 編寫一個(gè)判斷一個(gè)給定的文件是否存在的函數(shù),并能處理無(wú)效驅(qū)動(dòng)器或軟盤驅(qū)動(dòng)器沒有磁盤等設(shè)備出錯(cuò)問題。,例15.3 編寫簡(jiǎn)單的錯(cuò)誤處理程序。處理當(dāng)在文本中輸入數(shù)據(jù)超過整型數(shù)的最大值32767時(shí)給出錯(cuò)誤提示,并可重新輸入。,15.5 生成執(zhí)行文件和制作安裝程序,15.5.1 生成執(zhí)行文件,從“文件”菜單中選取“生成projectname.exe”,將打開“生成工程”對(duì)話框,如圖15-17所示。這里“projectname” 是工程的應(yīng)用程序名。,15.5.2 使用安裝向?qū)?chuàng)建安裝程序,為應(yīng)用程序制作安裝程序,打包是創(chuàng)建一個(gè)軟件包的操作,該軟件包可以將你的應(yīng)用程序安裝到用戶的計(jì)算機(jī)上。軟件包由一個(gè)或

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論