第3章 異常處理與調(diào)試_第1頁
第3章 異常處理與調(diào)試_第2頁
第3章 異常處理與調(diào)試_第3頁
第3章 異常處理與調(diào)試_第4頁
第3章 異常處理與調(diào)試_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VB.NET程序設(shè)計

第3章調(diào)試與異常處理東北大學(xué)軟件學(xué)院2013-2014第一學(xué)期主要內(nèi)容3.1程序代碼錯誤的種類3.2異常處理3.3代碼的調(diào)試3.1程序代碼錯誤的種類常遇到的三種錯誤語法錯誤運行時錯誤邏輯錯誤程序代碼錯誤的種類

語法錯誤

程序語句違反語言規(guī)則,就會產(chǎn)生程序代碼錯誤語法錯誤可由編譯器捕捉在VisualStudio.NET中,語法錯誤出現(xiàn)在“任務(wù)列表”窗口,并附帶說明、行號和文件名。含有語法錯誤的程序不能執(zhí)行。如編譯器報告某行有語法錯誤,請檢查那一行,如果那一行沒有錯誤,再查看它的前幾行代碼。改正一個錯誤后,要重新編譯程序。總錯誤個數(shù)可能明顯減少。運行時錯誤運行時錯誤也叫執(zhí)行錯誤,會造成程序的中斷執(zhí)行常見的執(zhí)行錯誤用零做除數(shù)訪問不存在的文件訪問超過上限的數(shù)組程序調(diào)用時的參數(shù)錯誤邏輯錯誤產(chǎn)生非意料之中的結(jié)果或多余結(jié)果程序運行時不會出現(xiàn)錯誤信息計算1+2+….+99的和3.2異常處理執(zhí)行一個任務(wù)

如果前面的任務(wù)執(zhí)行不正確 執(zhí)行錯誤處理

執(zhí)行下一個任務(wù)

如果前面的任務(wù)執(zhí)行不正確 執(zhí)行錯誤處理

……異常處理使用戶能夠從實現(xiàn)應(yīng)用程序邏輯的代碼中去除錯誤處理代碼,增強應(yīng)用程序的清晰性和可修改性。異常處理Try[tryStatements][Catch[exception[Astype]][catchStatements]][ExitTry]……[Finally[FianllyStatements]]EndTry異常處理的語法格式.NET異常類層次結(jié)構(gòu)Exception類ApplicationException類SystemException類派生類1派生類n…派生類1派生類n…派生類m…派生類1派生類n…派生類m…SystemException類的部分派生類類別說明ArgumentOutOfRangeException當(dāng)參數(shù)值超出調(diào)用方法所規(guī)定的范圍時所產(chǎn)生錯誤DivideByZeroException除數(shù)為0時所產(chǎn)生錯誤IndexOutOfRangeException索引值超出數(shù)組所允許范圍InvalidCastException類型轉(zhuǎn)換所產(chǎn)生錯誤,如將字母轉(zhuǎn)為數(shù)值OverFlowException溢出時所產(chǎn)生錯誤例:輸入兩個整數(shù),將兩數(shù)相除求其商,若分母的輸入值為0時,程序會中斷且顯示錯誤信息。使用Try…Catch來進(jìn)行異常處理異常屬性Message:包含錯誤的字符串,適于顯示給用戶StackTrace:包含了一個字符串(通常都很長),表示方法調(diào)用堆棧,在異常發(fā)生時尚未完成處理的方法序列InnerException:返回內(nèi)部(嵌套)異常的異常對象HelpLink:表示異常的幫助鏈接字符串Source:包含生成錯誤的對象名稱的字符串TargetSite:保存拋出異常的方法例:使用Try…Catch…Finally來處理運行時數(shù)組索引值超出界限外的錯誤。例:求n!。因為有不同異常處理,會有不同錯誤信息。7.2錯誤的捕獲

遇到特殊錯誤,系統(tǒng)并沒有提供此種判斷,自己也可以寫程序來處理特殊錯誤,Throw語句即可指到該異常類,即自定義異常類。自定義異常處理例:使用ArgumentOutOfRangeException類。若輸入月份1~12,不發(fā)生錯誤;若輸入其它數(shù)字,結(jié)果顯示“不合理月份”。7.2錯誤的捕獲

用戶定義的異常類直接或間接地從System名字空間的ApplicationException類派生專門描述當(dāng)前程序中發(fā)生的問題例,用戶定義異常類NegativeNumberException表示當(dāng)程序執(zhí)行了負(fù)數(shù)的非法運算時所發(fā)生的異常。計算負(fù)數(shù)的平方根3.3代碼的調(diào)試單擊任何代碼行左側(cè)的灰色區(qū)域,或者右擊代碼行,再選擇[插入斷點];隨后出現(xiàn)一個紅色圓點,斷點已經(jīng)設(shè)置成功;程序執(zhí)行時,會在斷點位置中斷;選擇[調(diào)試]|[啟動]開始調(diào)試過程。設(shè)置斷點啟用調(diào)試器VisualStudio.NET提供幾個調(diào)試窗口,都可從[調(diào)試]|[窗口]子菜單中訪問[監(jiān)視]窗口只在中斷模式才會出現(xiàn),可以利用它檢查變量值和表達(dá)式[局部變量]顯示在當(dāng)前作用域中,所有局部變量或?qū)ο蟮拿Q和值[自動窗口]顯示上一個語句和當(dāng)前語句中使用的變量和對象檢查數(shù)據(jù)[調(diào)試]工具欄包含了控制調(diào)試過程的按鈕選擇[視圖]|[工具欄]|[調(diào)試]顯示[調(diào)試]工具欄[重新啟動][繼續(xù)][停止調(diào)試][全部中斷][顯示下一語句][斷點][逐過程][條件]程序控制使用1+2+…+n<9,試找出n值。Dimn,sumAsIntegersum=0n=1DoWhile(True)sum+=nIf(sum>=9)Thensum-=nLabel1.Text="1+2+..."&n&_

溫馨提示

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

評論

0/150

提交評論