999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談C#中的異常處理

2018-11-13 05:54:14孫鯨鵬南京技師學(xué)院
數(shù)碼世界 2018年10期
關(guān)鍵詞:關(guān)聯(lián)用戶語(yǔ)言

孫鯨鵬 南京技師學(xué)院

1.概述

在日常生活中我們不可避免的會(huì)遇到各種意想不到的事情,同樣開發(fā)人員編寫的應(yīng)用程序代碼在運(yùn)行過(guò)程中,也會(huì)發(fā)生各種難以預(yù)料的問(wèn)題。當(dāng)代碼不能對(duì)遇到的問(wèn)題進(jìn)行處理時(shí),就會(huì)發(fā)生“異常(EXCEPTION)”,隨之而來(lái)的是程序發(fā)生報(bào)錯(cuò)、數(shù)據(jù)丟失甚至于系統(tǒng)崩潰等問(wèn)題。如果缺乏對(duì)這些異常的處理可能會(huì)給用戶帶來(lái)巨大的損失,如何對(duì)這些不可預(yù)知的異常的進(jìn)行處理也成了開發(fā)人員的必備技能。本文以C#開發(fā)環(huán)境中的異常處理為例展開闡述與分析。

C#(C SHARP)是一款基于微軟.NET Framework框架的面向?qū)ο蟾呒?jí)編程語(yǔ)言。C#語(yǔ)言繼承并發(fā)揚(yáng)了VB語(yǔ)言的所見即所得的便利操作性和C++語(yǔ)言的高效率的特性,語(yǔ)法優(yōu)美規(guī)范、是.NET平臺(tái)開發(fā)的首選。盡管基于C#開發(fā)環(huán)境中的應(yīng)用程序穩(wěn)定性在不斷提高,但是由于客戶的使用環(huán)境與習(xí)慣千變?nèi)f化使得應(yīng)用程序的異常時(shí)有發(fā)生。C# 語(yǔ)言的異常處理功能可幫助開發(fā)人員處理應(yīng)用程序運(yùn)行時(shí)出現(xiàn)的任何意外或異常情況。異常處理利用try、catch和finally編寫相關(guān)代碼來(lái)實(shí)現(xiàn)某些邏輯,以處理異常情況。其次是在事后釋放資源時(shí),使用異常處理也有很大的幫助。

2. try塊

try塊包含的代碼通常需要執(zhí)行一些通用的資源釋放操作,或者需要從異常中恢復(fù),或者兩者都需要。釋放代碼應(yīng)放在一個(gè)finally塊中。try塊還可包含也許會(huì)拋出異常的代碼。異常恢復(fù)代碼應(yīng)放在一個(gè)或多個(gè)catch塊中。針對(duì)應(yīng)用程序能從中安全恢復(fù)的每一種異常,都應(yīng)該創(chuàng)建一個(gè)catch塊。一個(gè)try塊至少要有一個(gè)關(guān)聯(lián)的catch塊或finally塊,單獨(dú)一個(gè)try塊是沒(méi)有意義的,也是不合法的。

3. catch塊

catch塊內(nèi)的代碼用以響應(yīng)異常并執(zhí)行相關(guān)的代碼。單個(gè)try塊可以關(guān)聯(lián)多個(gè)catch塊,也可以不關(guān)聯(lián)任何catch塊。如果try塊中的代碼執(zhí)行過(guò)程中未遇到異常,那么CLR將不會(huì)執(zhí)行它的任何catch塊中的代碼。線程將跳過(guò)所有catch塊,直接執(zhí)行finally塊中的代碼。finally塊中的代碼執(zhí)行完畢后,執(zhí)行從finally塊后面的語(yǔ)句繼續(xù)。

catch關(guān)鍵字后的圓括號(hào)中的表達(dá)式稱為捕捉類型。在C#中,必須將捕捉類型指定為System.Exception或者是其派生類型。

多數(shù)情況下,異常并不是由代碼的執(zhí)行報(bào)錯(cuò)拋出,而是由調(diào)用堆棧中底層的其它方法所引發(fā)。在這種情況下,將由CLR將負(fù)責(zé)查找堆棧內(nèi)是否由對(duì)應(yīng)此異常類型的catch塊,如果存在,則執(zhí)行該catch塊內(nèi)代碼。如果不存在對(duì)應(yīng)的catch塊,則終止該進(jìn)程,并將此消息提示給用戶。

4. finally塊

finally塊包含的代碼是保證會(huì)執(zhí)行的代碼。通常為執(zhí)行的try塊中的操作所要求的資源釋放。finally 塊將在最后執(zhí)行,在 try 塊和任何匹配 catch 的塊之后執(zhí)行。 不管是否引發(fā)異常或者是否找到與異常類型匹配的 catch 塊,finally 始終運(yùn)行。

finally 塊內(nèi)代碼多用于資源的釋放,而不用等待由CLR中的GC來(lái)完成對(duì)象的回收工作。

5.異常處理

異常處理在軟件開發(fā)中的使用非常廣泛,其過(guò)程可以歸結(jié)為在異常發(fā)生前做好分類定義,發(fā)生后保護(hù)現(xiàn)場(chǎng),處理異常,退出異常處理程序后,恢復(fù)被中斷程序的運(yùn)行。

C# 開發(fā)人員可使用 try 塊對(duì)可能受異常影響的代碼進(jìn)行分區(qū)。 關(guān)聯(lián)的 catch 塊用于處理任何結(jié)果異常。 一個(gè)包含代碼的finally 塊,無(wú)論 try 塊中是否引發(fā)異常(例如,釋放在 try 塊中分配的資源),這些代碼都會(huì)運(yùn)行。 一個(gè) try 塊需要一個(gè)或多個(gè)關(guān)聯(lián)的 catch 塊或一個(gè) finally 塊,或兩者。C# 語(yǔ)言的異常處理功能中的try-catch、try-finally和 try-catch-finally 三個(gè)語(yǔ)句可以靈活運(yùn)用,使用非常方便。

6.異常恢復(fù)

對(duì)于所有已知錯(cuò)誤引發(fā)的異常,開發(fā)人員可以通過(guò)采取一些措施允許應(yīng)用程序從異常中恢復(fù)并繼續(xù)運(yùn)行。示例代碼如下:

上述代碼計(jì)算兩個(gè)數(shù)相除的值,并將這個(gè)值通過(guò)字符串返回給調(diào)用函數(shù),若發(fā)生異常則由catch段代碼對(duì)result進(jìn)行賦值,給用戶合理的提示。如果除數(shù)b為0,那么CLR將拋出DivideByZeroExcep

tion異常,并向用戶返回“除數(shù)不能為零!”這個(gè)結(jié)果。如果被除數(shù)a為最大整數(shù),而除數(shù)為最小實(shí)數(shù),那么結(jié)果超出取值范圍CLR將拋出

OverflowException異常,并向用戶返回“數(shù)據(jù)溢出,無(wú)法顯示數(shù)據(jù)!”這個(gè)結(jié)果。這種做法極大的提升了用戶的體驗(yàn)性,同時(shí)也對(duì)開發(fā)人員對(duì)各種異常捕捉恢復(fù)提出了較高的要求。

總結(jié):任何技術(shù)高明的程序員所編寫的應(yīng)用程序都不可能絕對(duì)不出差錯(cuò)的運(yùn)行,如何使用異常處理來(lái)提高應(yīng)用程序的友好性、容錯(cuò)性及準(zhǔn)確的錯(cuò)誤信息收集能力是優(yōu)秀的應(yīng)用程序必須具備的特點(diǎn)。本文在分析了異常處理技術(shù)的概念和思想后,對(duì)異常處理進(jìn)行了總結(jié),并針對(duì)C#語(yǔ)言給出了相關(guān)示例,探討了對(duì)應(yīng)的解決措施,希望能對(duì)讀者在開發(fā)應(yīng)用程序時(shí)有所幫助。

猜你喜歡
關(guān)聯(lián)用戶語(yǔ)言
“苦”的關(guān)聯(lián)
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語(yǔ)言描寫搖曳多姿
奇趣搭配
智趣
讀者(2017年5期)2017-02-15 18:04:18
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
我有我語(yǔ)言
主站蜘蛛池模板: 中文字幕人妻无码系列第三区| 国产成人一区在线播放| 国产免费久久精品99re不卡 | 72种姿势欧美久久久久大黄蕉| аⅴ资源中文在线天堂| 91美女视频在线| 亚洲精品无码高潮喷水A| 欧美色综合网站| 国产91视频免费观看| 亚洲国产午夜精华无码福利| 久久国产精品无码hdav| 午夜国产精品视频| 全裸无码专区| 国产综合另类小说色区色噜噜| 久久综合九色综合97婷婷| 美美女高清毛片视频免费观看| 久久精品人妻中文系列| 成人精品午夜福利在线播放| 91偷拍一区| 欧美特黄一免在线观看| 亚洲欧美天堂网| 久久精品这里只有国产中文精品| 色哟哟国产成人精品| 中文字幕色站| 欧美成人综合视频| 99久久国产自偷自偷免费一区| 色综合热无码热国产| 欧美日本一区二区三区免费| 亚洲全网成人资源在线观看| 视频一本大道香蕉久在线播放| 国产欧美在线观看一区| 青青草欧美| 日韩高清一区 | 人妻少妇乱子伦精品无码专区毛片| 人妻精品全国免费视频| 高清无码手机在线观看| 欧美a在线视频| 国产91线观看| 国产福利在线观看精品| 99久久精品无码专区免费| 四虎成人在线视频| 91在线播放免费不卡无毒| 亚洲精品你懂的| 久久精品只有这里有| 91亚洲精品国产自在现线| 幺女国产一级毛片| 亚洲日本精品一区二区| 日韩av资源在线| 99精品福利视频| 不卡视频国产| 亚洲高清资源| 国产毛片高清一级国语 | 亚洲无码在线午夜电影| 亚洲天堂2014| 热思思久久免费视频| 67194亚洲无码| 五月婷婷欧美| 国产精品欧美激情| 亚洲日本韩在线观看| 一级毛片在线播放| 国产一在线观看| 欧美精品在线看| 欧美三级自拍| 极品国产在线| 久久精品国产精品青草app| 亚洲欧洲日韩久久狠狠爱| 狠狠操夜夜爽| 亚洲香蕉久久| 亚洲国产一区在线观看| 91视频99| 国产精品手机视频| 色综合婷婷| 国产成人综合久久精品尤物| 久久午夜夜伦鲁鲁片无码免费| 国产亚洲欧美在线专区| 精品国产91爱| 97se亚洲| 久久亚洲国产视频| 国产免费高清无需播放器| 亚洲日韩精品无码专区| 国产精品999在线| 国产成人亚洲欧美激情|