![第6章 程序調(diào)試和異常處理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/70cd145b-c8a2-4030-bb7e-37ea03c2ec47/70cd145b-c8a2-4030-bb7e-37ea03c2ec471.gif)
![第6章 程序調(diào)試和異常處理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/70cd145b-c8a2-4030-bb7e-37ea03c2ec47/70cd145b-c8a2-4030-bb7e-37ea03c2ec472.gif)
![第6章 程序調(diào)試和異常處理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/70cd145b-c8a2-4030-bb7e-37ea03c2ec47/70cd145b-c8a2-4030-bb7e-37ea03c2ec473.gif)
![第6章 程序調(diào)試和異常處理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/70cd145b-c8a2-4030-bb7e-37ea03c2ec47/70cd145b-c8a2-4030-bb7e-37ea03c2ec474.gif)
![第6章 程序調(diào)試和異常處理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/70cd145b-c8a2-4030-bb7e-37ea03c2ec47/70cd145b-c8a2-4030-bb7e-37ea03c2ec475.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 程序調(diào)試和異常處理 本章要點(diǎn): VB .NET程序中的錯(cuò)誤種類 VB .NET的工作模式 在VB .NET中使用調(diào)試工具調(diào)試程序的方法 VB .NET中的常用調(diào)試窗口 非結(jié)構(gòu)化異常處理語句(On Error和Resume)的功能與使用 結(jié)構(gòu)化異常處理語句(TryCatchFinally)的功能與使用6.1 循序漸進(jìn)學(xué)理論 6.1.1 程序中的錯(cuò)誤類型程序中的錯(cuò)誤類型 1語法錯(cuò)誤 語法錯(cuò)誤是指在程序代碼中,存在不符合VB .NET語法規(guī)則的語句而產(chǎn)生的錯(cuò)誤。 2運(yùn)行錯(cuò)誤 運(yùn)行錯(cuò)誤是指程序中的語句本身是正確的,但是這些語句在運(yùn)行時(shí)無法正確執(zhí)行,從而導(dǎo)致程序發(fā)生錯(cuò)誤。 3邏輯錯(cuò)誤 邏輯錯(cuò)誤是
2、指程序運(yùn)行過程中沒有得到要求的結(jié)果。常見的邏輯錯(cuò)誤有:運(yùn)算符使用不正確、語句的次序不對(duì)、循環(huán)語句的起始值或終值不正確、誤輸入等。 6.1.2 程序的調(diào)試程序的調(diào)試1VB .NET的3種工作模式 (1)設(shè)計(jì)模式:程序處于設(shè)計(jì)狀態(tài) (2)運(yùn)行模式:程序處于運(yùn)行狀態(tài) (3)中斷模式:暫停程序的執(zhí)行 三種狀態(tài)可通過調(diào)試菜單或調(diào)試工具欄相互切換圖6-4 【調(diào)試】菜單 圖6-5 【調(diào)試】工具欄 6.1.2 程序的調(diào)試程序的調(diào)試2使用調(diào)試工具調(diào)試程序 (1)設(shè)置和刪除斷點(diǎn):有三種方法,可在任何工作模式下完成。 (2)跟蹤程序的執(zhí)行:一般在中斷模式下進(jìn)行。逐語句執(zhí)行:可深入到被調(diào)用過程內(nèi)部,逐語句執(zhí)行逐過程執(zhí)
3、行:將被調(diào)用過程當(dāng)成一條語句來執(zhí)行跳出:連續(xù)執(zhí)行完當(dāng)前過程的剩余語句后,在調(diào)用該過程的下一條語句處中斷執(zhí)行 3常用的調(diào)試窗口(1)任務(wù)列表窗口:顯示語法錯(cuò)誤(2)輸出窗口:顯示程序運(yùn)行時(shí)產(chǎn)生的信息(3)命令窗口(立即):輸入并執(zhí)行VB.NET的各種命令。打開方法:“調(diào)試|窗口|即時(shí)”菜單(4)監(jiān)視窗口:顯示當(dāng)前被監(jiān)視的表達(dá)式的值。監(jiān)視的表達(dá)式可在監(jiān)視窗口直接添加(5)局部變量窗口:顯示當(dāng)前過程所有局部變量的值(6)自動(dòng)窗口:顯示當(dāng)前語句以及上一條語句所有變量的值(7)Me窗口:顯示當(dāng)前窗體類中定義的變量和對(duì)象的當(dāng)前值6.1.3 異常處理的概念異常處理的概念 【例6-1】 編寫一個(gè)除法計(jì)算器,計(jì)
4、算器的設(shè)計(jì)界面如圖6-12所示。程序運(yùn)行時(shí),輸入被除數(shù)和除數(shù)后按【計(jì)算】按鈕將會(huì)把運(yùn)算結(jié)果顯示在【結(jié)果】后面的文本框中,如圖6-13所示。要求程序能夠識(shí)別出除數(shù)為零的錯(cuò)誤并給出提示信息,如圖6-14所示。 圖6-12 程序設(shè)計(jì)界面 圖6-13 程序正常運(yùn)行界面 圖6-14 除數(shù)為零的情況 6.1.4 非結(jié)構(gòu)化異常處理非結(jié)構(gòu)化異常處理1Err對(duì)象 Err對(duì)象的主要屬性和方法有: Number屬性:錯(cuò)誤號(hào) Description屬性:發(fā)生錯(cuò)誤的描述信息 Raise方法:產(chǎn)生一個(gè)錯(cuò)誤報(bào)警信息 格式:Public Sub Raise( ByVal Number As Integer, Optional
5、 ByVal Source As Object = Nothing, Optional ByVal Description As Object = Nothing, Optional ByVal HelpFile As Object = Nothing, Optional ByVal HelpContext As Object = Nothing ) 如:Err.Raise(vbObjectError+513, “MyFun”,”輸入無效文本”) Clear方法:清除Err對(duì)象的所有屬性值 2On Error語句 用于處理其后代碼塊中的異常錯(cuò)誤On Error語句有以下四種形式: On Err
6、or GoTo Line On Error Resume Next On Error GoTo 0 On Erro GoTo -13Resume語句 在錯(cuò)誤處理代碼執(zhí)行完后繼續(xù)程序執(zhí)行(1)Resume 0 (2)Resume Next(3)Resume line 注意:在錯(cuò)誤處理程序以外的任何位置使用Resume語句,將引發(fā)錯(cuò)誤 【例6-2】 用非結(jié)構(gòu)化異常處理方法處理例6-1中的除數(shù)為0的異常和所有其它異常。當(dāng)除數(shù)為零時(shí),自動(dòng)把除數(shù)設(shè)置為1,再重新執(zhí)行除法運(yùn)算,并給出結(jié)果不可靠的信息,如圖6-15所示和圖6-16所示。如果發(fā)生了其它異常則給出異常的提示信息,并退出過程,如圖6-17所示。
7、圖6-15 提示信息 圖6-16 不可靠的結(jié)果 圖6-17 其它異常的提示信息 6.1.5 結(jié)構(gòu)化異常處理結(jié)構(gòu)化異常處理1TryCatchFinallyEnd Try語句語句格式:Try Try語句塊 該語句塊可能會(huì)引發(fā)異常 Catch exception As type When expression Catch語句塊用來對(duì)捕獲的錯(cuò)誤進(jìn)行處理 Finally語句塊 存放異常處理后執(zhí)行的代碼End Try 【例6-3】 對(duì)除法計(jì)算器進(jìn)行改造使之能夠捕獲到除數(shù)為零的異常(只對(duì)整數(shù)和Decimal數(shù)產(chǎn)生,對(duì)于實(shí)數(shù)結(jié)果為無窮大)、輸入數(shù)據(jù)格式不正確的異常以及其它所有異常。圖6-18圖6-20是發(fā)生了
8、幾種異常情況時(shí)的程序運(yùn)行界面。 圖6-18 除數(shù)為0時(shí)的異常 圖6-19 參數(shù)格式不正確時(shí)的異常 圖6-20 其它異常 2常用的異常類所有異常類派生于System.Exception類(1)Message屬性 :包含對(duì)異常原因的描述信息(2)InnerException屬性:包含這個(gè)異常的“內(nèi)部異常” 3用戶自行觸發(fā)異常:Throw語句格式:Throw 異常對(duì)象功能:用來拋出一個(gè)可用結(jié)構(gòu)化異常處理代碼(Try.Catch Finally.End Try)或非結(jié)構(gòu)化異常處理代碼(On Error GoTo)處理的異常 【例6-4】 編寫一個(gè)通用過程用來校驗(yàn)用戶輸入的密碼長(zhǎng)度是否等于8位,如果密碼
9、長(zhǎng)度不等于8位將自行觸發(fā)一個(gè)異常。然后編寫一個(gè)密碼輸入界面,調(diào)用該通用過程進(jìn)行驗(yàn)證,并能捕獲密碼長(zhǎng)度不正確的異常。程序的設(shè)計(jì)界面如圖6-22所示。程序運(yùn)行時(shí)可在文本框中輸入密碼,如圖6-23所示。若輸入的密碼不是8位,將出現(xiàn)如圖6-24的消息框。圖6-22 程序設(shè)計(jì)界面 圖6-23 程序運(yùn)行界面 圖6-24 關(guān)于異常的提示信息 6.1.6 生成可執(zhí)行文件生成可執(zhí)行文件圖6-25 【配置管理器】對(duì)話框 6.2 典型實(shí)例練能力 6.2.1 典型實(shí)例一:過程參數(shù)不正確的異常處理典型實(shí)例一:過程參數(shù)不正確的異常處理(非結(jié)構(gòu)化異常處理)(非結(jié)構(gòu)化異常處理) 【6-5】 編寫一個(gè)通用過程,用來求兩個(gè)整數(shù)之
10、間所有數(shù)的平方和,平方和要求通過參數(shù)帶回。然后編寫程序調(diào)用該通用過程對(duì)它進(jìn)行驗(yàn)證,要求在主調(diào)過程中能夠捕獲過程參數(shù)不正確的異常。程序的設(shè)計(jì)界面如圖6-26所示。調(diào)用過程時(shí)若發(fā)生參數(shù)不正確異常,將會(huì)出現(xiàn)如圖6-27所示的提示對(duì)話框,提示對(duì)話框退出后將會(huì)出現(xiàn)如圖6-28所示。圖6-26 程序設(shè)計(jì)界面 圖6-27 錯(cuò)誤提示對(duì)話框 圖6-28 顯示錯(cuò)誤號(hào) 6.3 上機(jī)練習(xí)重應(yīng)用 6.3.2 上機(jī)練習(xí)一:算術(shù)運(yùn)算溢出異常的處理(結(jié)上機(jī)練習(xí)一:算術(shù)運(yùn)算溢出異常的處理(結(jié)構(gòu)化異常處理)構(gòu)化異常處理) 【練習(xí)題目】 編寫一個(gè)整數(shù)加法計(jì)算器,用來求輸入的任意兩個(gè)整數(shù)的和,要求能夠捕獲溢出異常和其它異常。程序的設(shè)計(jì)界面如圖6-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年春八年級(jí)歷史下冊(cè) 第11課 城鄉(xiāng)人民生存狀態(tài)的滄桑巨變說課稿1(pdf) 川教版
- Unit 2 Understanding each other Project 說課稿-2023-2024學(xué)年高中英語牛津譯林版(2020)選擇性必修第四冊(cè)
- Unit 6 Meet my family Part B Let's talk Let's learn大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版英語四年級(jí)上冊(cè)
- 2024年秋七年級(jí)生物上冊(cè) 3.5.2 綠色植物的呼吸作用說課稿 (新版)新人教版001
- 葡萄園立柱施工方案
- 2023三年級(jí)數(shù)學(xué)下冊(cè) 三 美麗的街景-兩位數(shù)乘兩位數(shù)信息窗1 美麗的街燈第2課時(shí)說課稿 青島版六三制
- 預(yù)制水泥臨時(shí)圍墻施工方案
- 臨時(shí)合同范例復(fù)制
- 西安電動(dòng)推拉雨棚施工方案
- 2024秋一年級(jí)語文上冊(cè) 漢語拼音 11 ie üe er說課稿 新人教版
- 2024美團(tuán)簡(jiǎn)化版商家合作合同標(biāo)準(zhǔn)文本一
- 2025年貴州黔源電力股份有限公司招聘筆試參考題庫含答案解析
- 《休閑食品加工技術(shù)》 課件 1 休閑食品生產(chǎn)與職業(yè)生活
- 春季開學(xué)安全第一課
- 2025年新生兒黃疸診斷與治療研究進(jìn)展
- 廣東大灣區(qū)2024-2025學(xué)年度高一上學(xué)期期末統(tǒng)一測(cè)試英語試題(無答案)
- 2025年四川中煙工業(yè)限責(zé)任公司招聘110人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 課題申報(bào)書:數(shù)智賦能高職院校思想政治理論課“金課”實(shí)踐路徑研究
- 公司安全生產(chǎn)事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)工作制度
- H3CNE認(rèn)證考試題庫官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
評(píng)論
0/150
提交評(píng)論