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ǔ)言
主站蜘蛛池模板: 国产97区一区二区三区无码| 国产成人综合网| 久久久久久久久久国产精品| 巨熟乳波霸若妻中文观看免费| 国产精品久线在线观看| 国产精品香蕉在线| 无码精品一区二区久久久| 在线永久免费观看的毛片| 一级香蕉视频在线观看| 欧美一级高清片欧美国产欧美| 国产成人91精品免费网址在线| 欧美色伊人| 青青久在线视频免费观看| 国产视频自拍一区| 国产喷水视频| 中国丰满人妻无码束缚啪啪| 视频二区中文无码| 91在线激情在线观看| 综合色在线| 手机永久AV在线播放| 中文字幕在线播放不卡| 国产成人无码Av在线播放无广告| 久久国产亚洲欧美日韩精品| 思思热精品在线8| 天天躁狠狠躁| 在线观看免费黄色网址| 国产精品嫩草影院视频| 免费高清毛片| 亚洲国产日韩在线成人蜜芽| 国产日本欧美亚洲精品视| 亚洲精品国产综合99| 国产尤物视频在线| 最新加勒比隔壁人妻| 91成人在线观看| 久久永久精品免费视频| 波多野结衣无码AV在线| 天天做天天爱夜夜爽毛片毛片| 亚洲色图另类| 色播五月婷婷| 爱色欧美亚洲综合图区| 四虎永久免费网站| 国产在线拍偷自揄拍精品| 亚洲精品无码久久毛片波多野吉| 中文一级毛片| 国产精品久久久久无码网站| 久久精品人人做人人| 国产精品浪潮Av| 国产剧情伊人| 手机永久AV在线播放| 青青网在线国产| 久久国产精品娇妻素人| 国产jizz| 成年人久久黄色网站| Jizz国产色系免费| 免费全部高H视频无码无遮掩| 露脸真实国语乱在线观看| 久综合日韩| 精品在线免费播放| 午夜国产不卡在线观看视频| 中文毛片无遮挡播放免费| 免费观看无遮挡www的小视频| 国产综合精品日本亚洲777| 伊在人亞洲香蕉精品區| 一级高清毛片免费a级高清毛片| 久久这里只有精品66| 最新加勒比隔壁人妻| 四虎免费视频网站| 久久久久久久蜜桃| 国产女人爽到高潮的免费视频| 国产丝袜丝视频在线观看| 日韩高清欧美| 精品亚洲欧美中文字幕在线看| WWW丫丫国产成人精品| 孕妇高潮太爽了在线观看免费| 日本爱爱精品一区二区| 亚洲天堂区| 国产精品内射视频| 国产在线视频导航| 青青草国产精品久久久久| 日韩福利视频导航| 亚洲天堂日本| 国产欧美在线观看一区|