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ǔ)言
主站蜘蛛池模板: 欧美日韩国产在线观看一区二区三区| 免费AV在线播放观看18禁强制| 久久久久青草大香线综合精品 | 亚洲69视频| 国产精品网址在线观看你懂的| 欧美性久久久久| 国产在线观看第二页| 久久国产亚洲欧美日韩精品| 91无码视频在线观看| 亚洲大尺码专区影院| 免费看一级毛片波多结衣| 色妞www精品视频一级下载| a级毛片毛片免费观看久潮| 99热亚洲精品6码| 免费一级毛片完整版在线看| 性视频久久| 浮力影院国产第一页| 久久婷婷五月综合色一区二区| 青青青国产在线播放| 亚洲一区精品视频在线| 久久精品免费看一| 91激情视频| 永久免费无码成人网站| www.亚洲国产| 色网站在线免费观看| 在线观看欧美精品二区| 国产不卡国语在线| 国产日本视频91| 在线毛片免费| 免费观看精品视频999| 欧美a在线看| 免费A∨中文乱码专区| 99久久精品久久久久久婷婷| 国产亚洲日韩av在线| 伊人久久综在合线亚洲91| 精品视频91| 国产区在线看| 欧美一区二区三区国产精品| 亚洲永久精品ww47国产| 亚洲色欲色欲www在线观看| 久久久亚洲国产美女国产盗摄| 经典三级久久| 亚洲av日韩综合一区尤物| 亚洲嫩模喷白浆| 亚洲欧美激情另类| 国产精品免费p区| 国产欧美视频在线观看| 欧美日韩午夜| www中文字幕在线观看| 毛片网站在线播放| 97亚洲色综久久精品| 少妇精品久久久一区二区三区| 色婷婷电影网| 曰AV在线无码| 中文字幕亚洲乱码熟女1区2区| 在线免费a视频| 欧美人在线一区二区三区| 国产欧美另类| 欧美人在线一区二区三区| 天堂在线www网亚洲| 全部毛片免费看| 高清大学生毛片一级| 亚洲欧美极品| 一级毛片a女人刺激视频免费| 另类欧美日韩| 狂欢视频在线观看不卡| 日本尹人综合香蕉在线观看| 欧美三级视频网站| 91精品日韩人妻无码久久| 国产91在线|日本| 国产91视频免费| 日韩欧美一区在线观看| 综合色区亚洲熟妇在线| 精品国产一区二区三区在线观看| 色婷婷在线播放| 国产精品播放| 99视频在线免费| 亚洲制服丝袜第一页| 精品色综合| 欧美福利在线| 波多野结衣一区二区三视频 | 国产一区亚洲一区|