第6章 程序調試和異常處理_第1頁
第6章 程序調試和異常處理_第2頁
第6章 程序調試和異常處理_第3頁
第6章 程序調試和異常處理_第4頁
第6章 程序調試和異常處理_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第6章 程序調試和異常處理 本章要點: VB .NET程序中的錯誤種類 VB .NET的工作模式 在VB .NET中使用調試工具調試程序的方法 VB .NET中的常用調試窗口 非結構化異常處理語句(On Error和Resume)的功能與使用 結構化異常處理語句(TryCatchFinally)的功能與使用6.1 循序漸進學理論 6.1.1 程序中的錯誤類型程序中的錯誤類型 1語法錯誤 語法錯誤是指在程序代碼中,存在不符合VB .NET語法規(guī)則的語句而產生的錯誤。 2運行錯誤 運行錯誤是指程序中的語句本身是正確的,但是這些語句在運行時無法正確執(zhí)行,從而導致程序發(fā)生錯誤。 3邏輯錯誤 邏輯錯誤是

2、指程序運行過程中沒有得到要求的結果。常見的邏輯錯誤有:運算符使用不正確、語句的次序不對、循環(huán)語句的起始值或終值不正確、誤輸入等。 6.1.2 程序的調試程序的調試1VB .NET的3種工作模式 (1)設計模式:程序處于設計狀態(tài) (2)運行模式:程序處于運行狀態(tài) (3)中斷模式:暫停程序的執(zhí)行 三種狀態(tài)可通過調試菜單或調試工具欄相互切換圖6-4 【調試】菜單 圖6-5 【調試】工具欄 6.1.2 程序的調試程序的調試2使用調試工具調試程序 (1)設置和刪除斷點:有三種方法,可在任何工作模式下完成。 (2)跟蹤程序的執(zhí)行:一般在中斷模式下進行。逐語句執(zhí)行:可深入到被調用過程內部,逐語句執(zhí)行逐過程執(zhí)

3、行:將被調用過程當成一條語句來執(zhí)行跳出:連續(xù)執(zhí)行完當前過程的剩余語句后,在調用該過程的下一條語句處中斷執(zhí)行 3常用的調試窗口(1)任務列表窗口:顯示語法錯誤(2)輸出窗口:顯示程序運行時產生的信息(3)命令窗口(立即):輸入并執(zhí)行VB.NET的各種命令。打開方法:“調試|窗口|即時”菜單(4)監(jiān)視窗口:顯示當前被監(jiān)視的表達式的值。監(jiān)視的表達式可在監(jiān)視窗口直接添加(5)局部變量窗口:顯示當前過程所有局部變量的值(6)自動窗口:顯示當前語句以及上一條語句所有變量的值(7)Me窗口:顯示當前窗體類中定義的變量和對象的當前值6.1.3 異常處理的概念異常處理的概念 【例6-1】 編寫一個除法計算器,計

4、算器的設計界面如圖6-12所示。程序運行時,輸入被除數(shù)和除數(shù)后按【計算】按鈕將會把運算結果顯示在【結果】后面的文本框中,如圖6-13所示。要求程序能夠識別出除數(shù)為零的錯誤并給出提示信息,如圖6-14所示。 圖6-12 程序設計界面 圖6-13 程序正常運行界面 圖6-14 除數(shù)為零的情況 6.1.4 非結構化異常處理非結構化異常處理1Err對象 Err對象的主要屬性和方法有: Number屬性:錯誤號 Description屬性:發(fā)生錯誤的描述信息 Raise方法:產生一個錯誤報警信息 格式: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對象的所有屬性值 2On Error語句 用于處理其后代碼塊中的異常錯誤On Error語句有以下四種形式: On Err

6、or GoTo Line On Error Resume Next On Error GoTo 0 On Erro GoTo -13Resume語句 在錯誤處理代碼執(zhí)行完后繼續(xù)程序執(zhí)行(1)Resume 0 (2)Resume Next(3)Resume line 注意:在錯誤處理程序以外的任何位置使用Resume語句,將引發(fā)錯誤 【例6-2】 用非結構化異常處理方法處理例6-1中的除數(shù)為0的異常和所有其它異常。當除數(shù)為零時,自動把除數(shù)設置為1,再重新執(zhí)行除法運算,并給出結果不可靠的信息,如圖6-15所示和圖6-16所示。如果發(fā)生了其它異常則給出異常的提示信息,并退出過程,如圖6-17所示。

7、圖6-15 提示信息 圖6-16 不可靠的結果 圖6-17 其它異常的提示信息 6.1.5 結構化異常處理結構化異常處理1TryCatchFinallyEnd Try語句語句格式:Try Try語句塊 該語句塊可能會引發(fā)異常 Catch exception As type When expression Catch語句塊用來對捕獲的錯誤進行處理 Finally語句塊 存放異常處理后執(zhí)行的代碼End Try 【例6-3】 對除法計算器進行改造使之能夠捕獲到除數(shù)為零的異常(只對整數(shù)和Decimal數(shù)產生,對于實數(shù)結果為無窮大)、輸入數(shù)據格式不正確的異常以及其它所有異常。圖6-18圖6-20是發(fā)生了

8、幾種異常情況時的程序運行界面。 圖6-18 除數(shù)為0時的異常 圖6-19 參數(shù)格式不正確時的異常 圖6-20 其它異常 2常用的異常類所有異常類派生于System.Exception類(1)Message屬性 :包含對異常原因的描述信息(2)InnerException屬性:包含這個異常的“內部異?!?3用戶自行觸發(fā)異常:Throw語句格式:Throw 異常對象功能:用來拋出一個可用結構化異常處理代碼(Try.Catch Finally.End Try)或非結構化異常處理代碼(On Error GoTo)處理的異常 【例6-4】 編寫一個通用過程用來校驗用戶輸入的密碼長度是否等于8位,如果密碼

9、長度不等于8位將自行觸發(fā)一個異常。然后編寫一個密碼輸入界面,調用該通用過程進行驗證,并能捕獲密碼長度不正確的異常。程序的設計界面如圖6-22所示。程序運行時可在文本框中輸入密碼,如圖6-23所示。若輸入的密碼不是8位,將出現(xiàn)如圖6-24的消息框。圖6-22 程序設計界面 圖6-23 程序運行界面 圖6-24 關于異常的提示信息 6.1.6 生成可執(zhí)行文件生成可執(zhí)行文件圖6-25 【配置管理器】對話框 6.2 典型實例練能力 6.2.1 典型實例一:過程參數(shù)不正確的異常處理典型實例一:過程參數(shù)不正確的異常處理(非結構化異常處理)(非結構化異常處理) 【6-5】 編寫一個通用過程,用來求兩個整數(shù)之

10、間所有數(shù)的平方和,平方和要求通過參數(shù)帶回。然后編寫程序調用該通用過程對它進行驗證,要求在主調過程中能夠捕獲過程參數(shù)不正確的異常。程序的設計界面如圖6-26所示。調用過程時若發(fā)生參數(shù)不正確異常,將會出現(xiàn)如圖6-27所示的提示對話框,提示對話框退出后將會出現(xiàn)如圖6-28所示。圖6-26 程序設計界面 圖6-27 錯誤提示對話框 圖6-28 顯示錯誤號 6.3 上機練習重應用 6.3.2 上機練習一:算術運算溢出異常的處理(結上機練習一:算術運算溢出異常的處理(結構化異常處理)構化異常處理) 【練習題目】 編寫一個整數(shù)加法計算器,用來求輸入的任意兩個整數(shù)的和,要求能夠捕獲溢出異常和其它異常。程序的設計界面如圖6-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論