日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

捕捉所有异常_详解Java中异常的分类

發(fā)布時(shí)間:2023/12/10 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 捕捉所有异常_详解Java中异常的分类 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

(1)Exception 各種異常的根類

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

(2)ArithmeticException 算數(shù)運(yùn)算錯(cuò)誤異常

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

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

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

(4)NullPointException 空指針異常

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

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

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

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

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

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

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

IllegalArgumentException異常。

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

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

給大家免費(fèi)分享一套資料,這套資料包含面試題,視頻,簡歷模>板,成長路徑,核心總結(jié)文檔,需要這份資料的小伙伴,私信小編即可。

這些是常見的RunTimeException(運(yùn)行時(shí)異常),也就是說,這些異常不需要強(qiáng)制聲明會(huì)拋出,或者強(qiáng)制捕捉的異常。

舉兩個(gè)例子
程序出了那種異常JVM就會(huì)拋出相應(yīng)的異常
比如代碼:

ArrayIndexOutOfBoundsException public void demo1(){try{ int a = 10/0; } catch(ArithmeticException ae) { System.out.println(“算術(shù)運(yùn)算異常:”+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)的異常被他的子類捕捉了,他就不會(huì)再捕捉比如demo2()方法
如果是出現(xiàn)了ArrayIndexOutOfBoundsException Exception就不會(huì)捕捉了! 那么為什么要捕捉多次呢?
因?yàn)锳rrayIndexOutOfBoundsException只是數(shù)組下標(biāo)越界的異常,所以它比Exception更的仔細(xì),更能說明異常的原因!
如果不是出現(xiàn)ArrayIndexOutOfBoundsException則Exception就會(huì)來捕捉

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

總結(jié)

以上是生活随笔為你收集整理的捕捉所有异常_详解Java中异常的分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。