在Java語言中冯勉,異常的基類是Throwable,Throwable有兩個子類咽扇,分別為Error和Exception钻蔑。
為了在編譯時期能夠檢查異常拧抖,異常又分為checked Exceptions(受檢查的異常) 和 unchecked Exceptions(不受檢查的異常)。
通常認為繼承Error和RuntimeException的類為不受檢查的異常识埋,反之則為受檢查的異常凡伊。
受不受檢查的異常是相對于編譯器而言的,受檢查的異常編譯器要求一定要拋出異持现郏或者捕獲異常系忙,不受檢查的異常則不要求。
Error:是程序無法處理的錯誤惠豺,表示運行應(yīng)用程序中較嚴重問題银还。常見的Error有:StackOverflowError(棧溢出錯誤),OutOfMemoryError(內(nèi)存溢出錯誤), NoClassDefFoundError(類定義錯誤), ThreadError.
Exception:分為運行時異常和非運行時異常,RuntimeException及其子類為運行時異常洁墙,其他則為非運行時異常蛹疯。
常見的運行時異常有:IndexOutofBoundException(越界異常), AritheticException(算術(shù)異常), ClassCastException (類轉(zhuǎn)換異常), NullPointerException(空指針異常), IllegalArgumentException(不合法參數(shù)異常).
常見的非運行時異常有 : IOException (IO異常), SQLException(SQL異常), CloneNotSupportedException(克隆不支持異常), InterruptedException(中斷異常), ParseException(解析異常).
受檢查的異常和非運行時異常是同樣的異常。