第九章程序的調(diào)試與異常處理_第1頁
第九章程序的調(diào)試與異常處理_第2頁
第九章程序的調(diào)試與異常處理_第3頁
第九章程序的調(diào)試與異常處理_第4頁
第九章程序的調(diào)試與異常處理_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第九章程序的調(diào)試與異常處理*第1頁,課件共20頁,創(chuàng)作于2023年2月本章內(nèi)容:9.1程序的錯(cuò)誤類型9.2程序的調(diào)試9.3程序的異常處理第2頁,課件共20頁,創(chuàng)作于2023年2月學(xué)習(xí)目標(biāo)程序的錯(cuò)誤類型程序的調(diào)試程序的異常處理第3頁,課件共20頁,創(chuàng)作于2023年2月9.1程序的錯(cuò)誤類型可以將這些錯(cuò)誤分為四類,分別是:語法錯(cuò)誤編譯錯(cuò)誤運(yùn)行錯(cuò)誤邏輯錯(cuò)誤第4頁,課件共20頁,創(chuàng)作于2023年2月9.2程序的調(diào)試一.VB.NET的調(diào)試工具可以通過【調(diào)試】菜單,也可以使用【調(diào)試】工具欄??砂聪旅娴牟襟E打開【調(diào)試】工具欄。1.選擇【視圖】→【工具欄】菜單項(xiàng)。2.在【工具欄】下的子菜單中選擇【調(diào)試】命令,【調(diào)試】工具欄會(huì)出現(xiàn)。第5頁,課件共20頁,創(chuàng)作于2023年2月二.常用的調(diào)試對話框錯(cuò)誤列表窗口輸出窗口【立即】對話框【監(jiān)視】對話框【局部變量】對話框【Me】對話框第6頁,課件共20頁,創(chuàng)作于2023年2月1.錯(cuò)誤列表窗口在VB.NET中,如果開發(fā)人員的應(yīng)用程序中存在沒有清除的語法錯(cuò)誤,在調(diào)試時(shí),調(diào)試程序會(huì)查找到這些語法錯(cuò)誤,并將錯(cuò)誤信息顯示在【錯(cuò)誤列表】窗口中?!惧e(cuò)誤列表】窗口不但顯示出錯(cuò)誤的類型和說明,還顯示出錯(cuò)的文件,以便開發(fā)人員快速定位和修改錯(cuò)誤。如果要馬上修改某一個(gè)錯(cuò)誤,可以在錯(cuò)誤列表中雙擊它,IDE會(huì)自動(dòng)跳轉(zhuǎn)到代碼窗口中,并加亮顯示相應(yīng)的錯(cuò)誤內(nèi)容。打開“錯(cuò)誤列表”窗口:選擇【視圖】→【錯(cuò)誤列表】第7頁,課件共20頁,創(chuàng)作于2023年2月2.輸出窗口VisualBasic.NET把【輸出】窗口的功能分為兩部分:調(diào)試和生成。在【輸出】窗口中,從【生成】選項(xiàng)可以查看調(diào)試的程序生成的內(nèi)容,包括成功的個(gè)數(shù)和失敗的個(gè)數(shù)。如果沒有生成失敗,表明程序創(chuàng)建成功。如果開發(fā)人員要查看調(diào)試輸出結(jié)果,可從【輸出】窗口中的下拉列表框中選擇【調(diào)試】選項(xiàng),窗口中就顯示出所有已經(jīng)加載的內(nèi)容和輸出結(jié)果。第8頁,課件共20頁,創(chuàng)作于2023年2月3.立即窗口VisualBasic.NET中,有一個(gè)【命令】對話框,在該對話框中可以直接使用VB.NET的各種命令與系統(tǒng)交互?!久睢繉υ捒蛴袃煞N不同的模式:命令模式和立即模式。命令模式主要用來執(zhí)行命令,立即模式主要用于調(diào)試程序。在調(diào)試應(yīng)用程序執(zhí)行函數(shù)或語句等操作時(shí),可使用立即模式查看,并更改變量的值。通過執(zhí)行【調(diào)試】→【窗口】→【即時(shí)】命令,可以以立即模式打開【命令】對話框。第9頁,課件共20頁,創(chuàng)作于2023年2月4.【監(jiān)視】對話框【監(jiān)視】對話框用于顯示當(dāng)前被監(jiān)視表達(dá)式的值?!颈O(jiān)視】對話框是最有用的對話框之一,在逐語句運(yùn)行的情況下,通過該對話框可以看到每執(zhí)行一條語句時(shí),監(jiān)視表達(dá)式值的變化情況?!颈O(jiān)視】對話框只能在運(yùn)行模式或中斷模式下打開,打開方法是執(zhí)行【調(diào)試】→【窗口】→【監(jiān)視】命令。若要在【監(jiān)視】對話框中添加被監(jiān)視表達(dá)式,只需單擊【監(jiān)視】對話框[名稱]列最下面一行單元格,在其中輸入要監(jiān)視的表達(dá)式即可。第10頁,課件共20頁,創(chuàng)作于2023年2月5.局部變量對話框【局部變量】對話框可顯示當(dāng)前過程中所有局部變量的值。當(dāng)程序從一個(gè)過程執(zhí)行到另一個(gè)過程時(shí),【局部變量】對話框的內(nèi)容也會(huì)隨之改變。該對話框只顯示當(dāng)前所執(zhí)行過程中局部變量的值。要打開【局部變量】對話框,可執(zhí)行【調(diào)試】→【窗口】→【局部變量】命令。6.【Me】對話框【Me】對話框用于顯示在窗體類中定義的變量和對象的當(dāng)前值。第11頁,課件共20頁,創(chuàng)作于2023年2月三.調(diào)試方法1.設(shè)置程序斷點(diǎn)斷點(diǎn)是應(yīng)用程序暫時(shí)停止執(zhí)行的位置,也是讓應(yīng)用程序進(jìn)入中斷模式的地方。在程序設(shè)計(jì)中,可以在中斷模式和設(shè)計(jì)模式下設(shè)置和刪除斷點(diǎn)。在調(diào)試程序時(shí),按照程序的功能,可在懷疑有錯(cuò)誤的語句處設(shè)置斷點(diǎn),這樣有利于發(fā)揮測試程序的功能和發(fā)現(xiàn)程序的邏輯錯(cuò)誤。設(shè)置斷點(diǎn)的方法:1)在代碼窗口中,單擊要設(shè)置斷點(diǎn)的那一行代碼,然后按【F9】鍵。2)在代碼窗口中,在要設(shè)置斷點(diǎn)的那一行代碼行上,單擊鼠標(biāo)右鍵并選擇【插入斷點(diǎn)】命令。3)在代碼窗口中,在要設(shè)置斷點(diǎn)的那一行代碼行的左邊界上的豎條上單擊。第12頁,課件共20頁,創(chuàng)作于2023年2月2.跟蹤程序執(zhí)行當(dāng)程序出錯(cuò)的具體位置不易確定,只能夠猜測到在某個(gè)范圍內(nèi)可能存在問題時(shí),需要在此范圍內(nèi)追蹤程序的執(zhí)行結(jié)果,逐條地執(zhí)行語句。這種運(yùn)行方式稱為”跟蹤”。VB.NET提供的跟蹤方式有:逐語句(StepInto):逐語句執(zhí)行方式為一次執(zhí)行一條語句,也叫單步執(zhí)行。每執(zhí)行一條語句之后,開發(fā)人員可以使用【即時(shí)】窗口、【局部變量】窗口或【監(jiān)視】窗口查看語句執(zhí)行的效果。逐過程(StepOver):編寫復(fù)雜的應(yīng)用程序時(shí),應(yīng)用程序的一個(gè)過程通常會(huì)調(diào)用另一個(gè)過程或函數(shù),有時(shí)候,并不想了解調(diào)用過程的執(zhí)行細(xì)節(jié),而只想關(guān)注當(dāng)前過程的執(zhí)行情況,可以使用【逐過程】命令。

跳出(StepOut):【跳出】命令連續(xù)執(zhí)行當(dāng)前過程剩余部分的語句,并在調(diào)用該過程的下一行處中斷執(zhí)行。第13頁,課件共20頁,創(chuàng)作于2023年2月9.3程序的異常處理一.非結(jié)構(gòu)化的異常處理非結(jié)構(gòu)化異常處理通過Err對象和OnError,Resume語句來實(shí)現(xiàn)。1.Err對象在VisualBasic中,產(chǎn)生的異常信息都會(huì)反映在一個(gè)對象中,這個(gè)對象就是Err。通過這個(gè)對象就可以獲取異常的所有信息,如異常碼、異常的信息描述等。Err對象是一個(gè)具有全局范圍的固有對象,用戶不必在程序中重新定義它。Err對象最常用的屬性是Description屬性和Number屬性。Description屬性表示異常的信息,Number屬性表示異常碼,它是1~32767之間的整數(shù)。第14頁,課件共20頁,創(chuàng)作于2023年2月2.OnError語句OnError語句放在代碼塊的開始處,它將處理在該塊內(nèi)發(fā)生的任何錯(cuò)誤。如果在執(zhí)行OnError語句后過程中引發(fā)了異常,程序流程將跳轉(zhuǎn)到OnError語句中指定的位置。常用的語句形式:1)OnErrorGoToLine作用:如果發(fā)生運(yùn)行時(shí)錯(cuò)誤,則將流程跳轉(zhuǎn)到該Line參數(shù)中指定的行號(hào)和行標(biāo)簽,并激活錯(cuò)誤處理程序。說明:指定行必須與OnErrorGoToLine語句位于同一過程中。2)OnErrorResumeNext作用:若當(dāng)前行有錯(cuò),程序?qū)⒗^續(xù)執(zhí)行代碼的下一行,而忽略當(dāng)前的異常。第15頁,課件共20頁,創(chuàng)作于2023年2月二.結(jié)構(gòu)化異常處理Try…Catch…Finally控制結(jié)構(gòu)是結(jié)構(gòu)化異常處理的基本結(jié)構(gòu)。它測試代碼片段,篩選執(zhí)行過程中產(chǎn)生的異常,根據(jù)產(chǎn)生的異常類型做出不同的響應(yīng)。語法格式:

Try[tryStatements][Catch[exception[Astype]][Whenexpression][catchStatements]]

[ExitTry]…

[Finally[finallyStatements]]

EndTry第16頁,課件共20頁,創(chuàng)作于2023年2月說明:tryStatements:可能發(fā)生錯(cuò)誤的語句。Catch:可以有多個(gè)catch塊,如果在處理try塊期間發(fā)生異常,則按文本順序檢查每個(gè)catch語句,以確定它是否處理該異常。Exception:表示已引發(fā)異常。任何變量名稱。其初始值是引發(fā)的錯(cuò)誤的值。它將與catch一同使用以指定所捕獲的錯(cuò)誤。Type:指定類篩選器的類型,如果Exception的值是type指定的類型的值,則該標(biāo)示符將綁定到異常對象。Whenexpression:當(dāng)expression結(jié)果為true時(shí),捕獲異常。catchStatements:處理相關(guān)的try塊中所發(fā)生錯(cuò)誤的語句。ExitTry:中斷try…catch…finally結(jié)構(gòu)。如果有finally塊,則轉(zhuǎn)到finally塊繼續(xù)執(zhí)行。Finally:在執(zhí)行離開try語句的任何部分時(shí)執(zhí)行。finallyStatements:在所有其他錯(cuò)誤處理結(jié)束后執(zhí)行的語句。第17頁,課件共20頁,創(chuàng)作于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論