第14章 異常處理及跟蹤調(diào)試

第14章 異常處理及跟蹤調(diào)試

ID:19802180

大?。?10.00 KB

頁數(shù):7頁

時(shí)間:2018-10-06

第14章 異常處理及跟蹤調(diào)試_第1頁
第14章 異常處理及跟蹤調(diào)試_第2頁
第14章 異常處理及跟蹤調(diào)試_第3頁
第14章 異常處理及跟蹤調(diào)試_第4頁
第14章 異常處理及跟蹤調(diào)試_第5頁
資源描述:

《第14章 異常處理及跟蹤調(diào)試》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、第14章異常處理與跟蹤調(diào)試在程序編制的過程中,總是沒有辦法避免錯(cuò)誤,然而,對(duì)于使用方法引發(fā)的錯(cuò)誤要在程序的執(zhí)行過程中盡可能做出處理,以便使我們說的異常處理;另外,對(duì)于每個(gè)比較大的軟件來說,在程序測(cè)試的過程中往往會(huì)出現(xiàn)錯(cuò)誤,但是,查找錯(cuò)誤的位置要比改正錯(cuò)誤難得多,所以,對(duì)于一個(gè)開發(fā)平臺(tái),C#提供了多種調(diào)試方法。本章簡(jiǎn)單了解異常處理與跟蹤調(diào)試。14.1異常處理在任何情況下,程序都不能是完美無缺,毫無錯(cuò)誤的,所以在程序的編制過程中,程序都必須能處理可能出現(xiàn)的錯(cuò)誤,C#提供處理錯(cuò)誤的機(jī)制,即使用異常類Exception為每種錯(cuò)誤提供定制的處理,并把識(shí)別錯(cuò)誤的代碼和處理錯(cuò)誤的代碼分離開來

2、。C#提供的結(jié)構(gòu)化處理異常的方法,使用try語句提供的控制結(jié)構(gòu)檢測(cè)代碼中的異常并做出相應(yīng)的處理。try語句有三種方式:l用try-catch捕獲異常l用try-finally清除異常l用try-catch-finally處理所有的異常14.1.1try-catch捕獲異常正常情況下,程序流進(jìn)入try控制塊,如果沒有錯(cuò)誤發(fā)生,就會(huì)正常操作。當(dāng)程序流離開try控制塊后,如果沒有發(fā)生錯(cuò)誤,將執(zhí)行catch后的finally語句塊或順序執(zhí)行;當(dāng)執(zhí)行try時(shí)發(fā)生錯(cuò)誤,程序留就會(huì)跳轉(zhuǎn)到相應(yīng)的catch語句塊。如【例14-1】?!纠?4-1】在TextBox控件中接受兩個(gè)數(shù),計(jì)算它們的商。該

3、例中需要從利用TextBox的Text屬性接受數(shù)字,因?yàn)門ext屬性值描述的類型為字符串型,所以在程序運(yùn)行的過程中,可能引發(fā)異常;另外,除數(shù)不能為0,否則,引發(fā)異常。程序的界面設(shè)置如圖14-1。圖14-1界面設(shè)計(jì)圖14-2由a引發(fā)的異?!坝?jì)算a/b”的代碼如下:7privatevoidbutton1_Click(objectsender,System.EventArgse){inta=1,b=1,c=1;try{a=Convert.ToInt32(textBox1.Text);}catch{MessageBox.Show("請(qǐng)將a的值輸入為數(shù)字");return;}try{b=

4、Convert.ToInt32(textBox2.Text);}catch{MessageBox.Show("請(qǐng)將b的值輸入為數(shù)字");return;}try{c=a/b;}catch(DivideByZeroException){MessageBox.Show("除數(shù)不能為0");return;}MessageBox.Show("整數(shù)a與整數(shù)b的商為"+c.ToString());}圖14-3由b引發(fā)的異常圖14-4除數(shù)為0的異常圖14-5正常情況程序的運(yùn)行結(jié)果:①當(dāng)在textBox1中輸入不是數(shù)字時(shí),入圖14-3,引發(fā)下面的異常:catch{MessageBox.Show(

5、"請(qǐng)將a的值輸入為數(shù)字");return;}②當(dāng)在textBox2中輸入不是數(shù)字時(shí),入圖14-4,引發(fā)下面的異常:catch{MessageBox.Show("請(qǐng)將b的值輸入為數(shù)字");return;}7③當(dāng)在textBox2中輸入數(shù)據(jù)為0時(shí),將引發(fā)除數(shù)不能為0的異常,如圖14-4。④正常情況下,結(jié)果為兩個(gè)數(shù)相除得到的整數(shù),如圖14-5所示。14.1.2try-finally清除異常如果你關(guān)心清除異常而不是錯(cuò)誤處理,try-finally清除異常能幫助你實(shí)現(xiàn)。它不僅抑制了出錯(cuò)消息,而且所有包含在finally塊中的代碼在異常被引發(fā)后仍然會(huì)被執(zhí)行。盡管程序不正常終止,但你還可以為

6、用戶獲取一條消息,如【例14-2】【例14-2】檢查文件是否存在,退出時(shí)顯示“謝謝您使用本軟件”。本例中檢查文件的存在與否,使用try-finally清除異常實(shí)現(xiàn)消息的顯示。當(dāng)文件存在時(shí)運(yùn)行結(jié)果如圖14-6所示;當(dāng)文件不存在時(shí)運(yùn)行結(jié)果如圖14-7所示。代碼如下:privatevoidbutton1_Click(objectsender,System.EventArgse){try{if(File.Exists(textBox1.Text)){label2.Text="該文件存在";}elselabel2.Text="該文件不存在";}finally{MessageBox.Sho

7、w("謝謝您使用本軟件!");};}圖14-6文件存在圖14-7文件不存在14.1.3用try-catch-finally處理所有的異常應(yīng)用程序最有可能的途徑是合并前面兩種錯(cuò)誤處理技術(shù)——捕獲錯(cuò)誤、清除并繼續(xù)執(zhí)行應(yīng)用程序。所有你要做的是在出錯(cuò)處理代碼中使用try-catch-finally語句。如將【例14-3】?!纠?4-3】在【例14-1】的基礎(chǔ)上,將a或b引發(fā)異常的情況合并,無論怎樣發(fā)生異常,程序?qū)⒏臑橄旅娴拇a:privatevoidbutton1_Click(objectsende

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。