新聞中心
一、C#異常處理機(jī)制所用到關(guān)鍵字

拱墅ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
try用于檢查發(fā)生的異常,并幫助發(fā)送任何可能的異常。
catch以控制權(quán)更大的方式處理錯(cuò)誤,可以有多個(gè)catch子句。
finally無(wú)論是否引發(fā)了異常,finally的代碼塊都將被執(zhí)行。
throw用于引發(fā)異常,可引發(fā)預(yù)定義異常和自定義異常。
二、C#異常處理機(jī)制的格式
try
三、C#異常處理機(jī)制實(shí)戰(zhàn)
一個(gè)除數(shù)和零的簡(jiǎn)單例子:
public class DivisorIsZero
注:(1)行被執(zhí)行則會(huì)拋出一個(gè)異常,如果沒(méi)有catch語(yǔ)句,程序會(huì)異常終止,使用不帶參數(shù)的catch子句,則可以捕獲任意類(lèi)型的異常。
如果將(1)行注釋掉,啟用(2)行,這意味該程序運(yùn)行時(shí)不會(huì)出現(xiàn)異常,從輸出可知,finally代碼塊仍將被執(zhí)行。
可以給try語(yǔ)句提供多個(gè)catch語(yǔ)句,以捕獲特定的異常,如上例中:0作為除數(shù)則會(huì)引發(fā)DivideByZeroException類(lèi)型的異常,上例中的catch語(yǔ)句可以作如下修改:
catch(DivideByZeroException e)
為什么還要加上一個(gè)catch(Exceptione)子句呢?原因很簡(jiǎn)單,catch(DivideByZeroExceptione)子句只能捕獲特定的異常,try內(nèi)的程序代碼可能還會(huì)產(chǎn)生其它的異常,這些異常只能由catch(Exceptione)來(lái)捕獲了。
下表給出了一些常見(jiàn)的異常:
System名稱(chēng)空間中常用的異常類(lèi)
異常類(lèi)名稱(chēng)簡(jiǎn)單描述
MemberAccessException訪(fǎng)問(wèn)錯(cuò)誤:類(lèi)型成員不能被訪(fǎng)問(wèn)
ArgumentException參數(shù)錯(cuò)誤:方法的參數(shù)無(wú)效
ArgumentNullException參數(shù)為空:給方法傳遞一個(gè)不可接受的空參數(shù)
ArithmeticException數(shù)學(xué)計(jì)算錯(cuò)誤:由于數(shù)學(xué)運(yùn)算導(dǎo)致的異常,覆蓋面廣。
ArrayTypeMismatchException數(shù)組類(lèi)型不匹配
DivideByZeroException被零除
FormatException參數(shù)的格式不正確
IndexOutOfRangeException索引超出范圍,小于0或比***一個(gè)元素的索引還大
InvalidCastException非法強(qiáng)制轉(zhuǎn)換,在顯式轉(zhuǎn)換失敗時(shí)引發(fā)
MulticastNotSupportedException不支持的組播:組合兩個(gè)非空委派失敗時(shí)引發(fā)
NotSupportedException調(diào)用的方法在類(lèi)中沒(méi)有實(shí)現(xiàn)
NullReferenceException引用空引用對(duì)象時(shí)引發(fā)
OutOfMemoryException無(wú)法為新語(yǔ)句分配內(nèi)存時(shí)引發(fā),內(nèi)存不足
OverflowException溢出
StackOverflowException棧溢出
TypeInitializationException錯(cuò)誤的初始化類(lèi)型:靜態(tài)構(gòu)造函數(shù)有問(wèn)題時(shí)引發(fā)
NotFiniteNumberException無(wú)限大的值:數(shù)字不合法
四、定義自己的異常類(lèi)
除了預(yù)定義的異常外,我們還可以創(chuàng)建自己的異常,過(guò)程比較簡(jiǎn)單:
㈠聲明一個(gè)異常,格式如下:
classExceptionName:Exception{}
㈡引發(fā)自己的異常:
throw(ExceptionName);
看一個(gè)例子:
class IAmSecondGrade:System.Exception{}//聲明異常 今天學(xué)習(xí)了一些異常處理的重要特性,還有許多其它的特性,有待以后努力
文章標(biāo)題:C#異常處理機(jī)制初步講解
地址分享:http://fisionsoft.com.cn/article/dhcegcj.html


咨詢(xún)
建站咨詢(xún)
