国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java中異常的分類

2019-11-14 15:20:07
字體:
供稿:網(wǎng)友

下面介紹幾種常見的異常類型,便于在出錯時對程序進(jìn)行查錯:

  (1)Exception    各種異常的根類

       如果你不知道將發(fā)生的異常集體屬于哪,而可以肯定種這個地方會出現(xiàn)異常時,可以把異常類型定義為Exception。

  (2)ArithmeticException     算數(shù)運算錯誤異常

       這個異常是在算數(shù)運算時經(jīng)常遇到的,常見的情況是除數(shù)為0時拋出的異常。

  (3)ArrayIndexOfOutBoundsException    數(shù)組下標(biāo)越界

       編程時要記住java數(shù)組下標(biāo)是從0開始的,數(shù)組下標(biāo)最大值為數(shù)組長度減1,如arr[10],最后一個數(shù)組元素是arr[9],如果寫成arr[10]就會出現(xiàn)ArrayIndexOfOutBoundsException異常。

  (4)NullPointException    空指針異常

       這個異常是針對調(diào)用未經(jīng)初始化或未定義的對象拋出的異常。

  (5)ClassNotFoundException   不能加載所需的類

       在java文件編譯后,可能是由于需要把.class文件移到了其他的文件夾,此時引用這個.class文件要注意修改其路徑,否則會拋出ClassNotFoundException異常。

  (6)InputMismatchException    輸入的數(shù)據(jù)類型與所需類型不匹配異常

       比如你需要int類型,但是通過輸入框得到的是String類型,就會拋出InputMismatchException異常。

  (7)IllegalArgumentException   方法接受非法參數(shù)

       這個是傳入方法中的參數(shù)類型不正確,如方法plus(int a,int b),調(diào)用時寫成a.plus(1,a)就會出現(xiàn)

IllegalArgumentException異常。

  (8)NumberFormatException    字符串轉(zhuǎn)換成數(shù)字異常

       在數(shù)據(jù)類型強制轉(zhuǎn)換時出現(xiàn)的異常,字符串“123”轉(zhuǎn)換成數(shù)字123不會出現(xiàn)異常,但是字符串“1@23”轉(zhuǎn)換成int類型就會拋出ClassCastException異常。     



這些是常見的RunTimeException(運行時異常),也就是說,這些異常不需要強制聲明會拋出,或者強制捕捉的異常。

 

 

舉兩個例子

程序出了那種異常JVM就會拋出相應(yīng)的異常 比如代碼:
ArrayIndexOutOfBoundsException public void demo1(){
try{ int a = 10/0; }
catch(ArithmeticException ae)
{ System.out.PRintln(“算術(shù)運算異常:”+ae.getMessage()); }
catch(Exception e)
{ System.out.println(“其他異常”+e.getMessage()); } }
public void demo2()
{ String strList[] = {"a","b","c"}; try{ String str = strList[4].toString(); }
catch(ArrayIndexOutOfBoundsException ae)
{ System.out.println(“數(shù)組下標(biāo)越界:”+ae.getMessage()); }
catch(Exception e)
{ System.out.println(“其他異常”+e.getMessage()); } }

總之Exception是所有異常的父類.如果你出現(xiàn)的異常被他的子類捕捉了,他就不會再捕捉比如demo2()方法
如果是出現(xiàn)了ArrayIndexOutOfBoundsException Exception就不會捕捉了! 那么為什么要捕捉多次呢?
因為ArrayIndexOutOfBoundsException只是數(shù)組下標(biāo)越界的異常,所以它比Exception更的仔細(xì),更能說明異常的原因!
如果不是出現(xiàn)ArrayIndexOutOfBoundsException則Exception就會來捕捉


所有異常,都繼承自java.lang.Throwable類。
Throwable有兩個直接子類,Error類和Exception類。
Exception
Exception則可使從任何標(biāo)準(zhǔn)Java庫的類方法,自己的方法以及運行時任何異常中拋出來的基類型。
異常可分為執(zhí)行異常(RuntimeException)和檢查異常(Checked Exceptions)兩種
RuntimeException
RuntimeException在默認(rèn)情況下會得到自動處理。所以通常用不著捕獲RuntimeException,但在自己的封裝里,也許仍然要選擇拋出一部分RuntimeException。
RuntimeException 是那些可能在 Java 虛擬機(jī)正常運行期間拋出的異常的超類。可能在執(zhí)行方法期間拋出但未被捕獲的 RuntimeException 的任何子類都無需在 throws 子句中進(jìn)行聲明。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 遂平县| 长宁县| 石景山区| 游戏| 舟山市| 仙游县| 横峰县| 察雅县| 田东县| 志丹县| 固原市| 龙岩市| 海晏县| 淮南市| 大关县| 揭西县| 沈阳市| 葵青区| 怀安县| 肇庆市| 沙雅县| 神池县| 和林格尔县| 卓资县| 平潭县| 浮山县| 泊头市| 香格里拉县| 昌邑市| 依兰县| 新营市| 南涧| 梅河口市| 安塞县| 慈溪市| 石家庄市| 博罗县| 哈密市| 进贤县| 城口县| 龙口市|