java異常分類
Java中異常的分類
所有異常,都繼承自java.lang.Throwable類。
Throwable有兩個(gè)直接子類,Error類和Exception類。
Exception
Exception則可使從任何標(biāo)準(zhǔn)Java庫(kù)的類方法,自己的方法以及運(yùn)行時(shí)任何異常中拋出來(lái)的基類型。
異常可分為執(zhí)行異常(RuntimeException)和檢查異常(Checked Exceptions)兩種
RuntimeException
RuntimeException在默認(rèn)情況下會(huì)得到自動(dòng)處理。所以通常用不著捕獲RuntimeException,但在自己的封裝里,也許仍然要選擇拋出一部分RuntimeException。
RuntimeException
是那些可能在 Java 虛擬機(jī)正常運(yùn)行期間拋出的異常的超類。可能在執(zhí)行方法期間拋出但未被捕獲的RuntimeException
的任何子類都無(wú)需在throws
子句中進(jìn)行聲明。(java api)
它是uncheckedExcepiton。
Java.lang.ArithmeticException
Java.lang.ArrayStoreExcetpion
Java.lang.ClassCastException
Java.lang.EnumConstantNotPresentException
Java.lang.IllegalArgumentException
Java.lang.IllegalThreadStateException
Java.lang.NumberFormatException
Java.lang.IllegalMonitorStateException
Java.lang.IllegalStateException
Java.lang.IndexOutOfBoundsException
Java.lang.ArrayIndexOutOfBoundsException
Java.lang.StringIndexOutOfBoundsException
Java.lang.NegativeArraySizeException’
Java.lang.NullPointerException
Java.lang.SecurityException
Java.lang.TypeNotPresentException
Java.lang.UnsupprotedOperationException
CheckedException
除了runtimeException以外的異常,都屬于checkedException,它們都在java.lang庫(kù)內(nèi)部定義。Java編譯器要求程序必須捕獲或聲明拋出這種異常。
一個(gè)方法必須通過(guò)throws語(yǔ)句在方法的聲明部分說(shuō)明它可能拋出但并未捕獲的所有checkedException。
Java.lang.ClassNotFoundException
Java.lang.CloneNotSupportedException
Java.lang.IllegalAccessException
Java.lang.InterruptedException
Java.lang.NoSuchFieldException
Java.lang.NoSuchMetodException
Error
當(dāng)程序發(fā)生不可控這種錯(cuò)誤時(shí),通常的做法是通知用戶并中止程序的執(zhí)行。
與異常不同的是Error及其子類的對(duì)象不應(yīng)被拋出。
Error 是 Throwable 的子類,代表編譯時(shí)間和系統(tǒng)錯(cuò)誤,用于指示合理的應(yīng)用程序不應(yīng)該試圖捕獲的嚴(yán)重問(wèn)題。大多數(shù)這樣的錯(cuò)誤都是異常條件。雖然 ThreadDeath 錯(cuò)誤是一個(gè)“正規(guī)”的條件,但它也是 Error 的子類,因?yàn)榇蠖鄶?shù)應(yīng)用程序都不應(yīng)該試圖捕獲它。
在執(zhí)行該方法期間,無(wú)需在其 throws 子句中聲明可能拋出但是未能捕獲的 Error 的任何子類,因?yàn)檫@些錯(cuò)誤可能是再也不會(huì)發(fā)生的異常條件。
它是uncheckedExcepiton。
posted on 2009-10-15 11:03 李云澤 閱讀(23494) 評(píng)論(1) 編輯 收藏 所屬分類: 面試筆試相關(guān)的