首先,Error類和Exception類都是繼承Throwable類
Error(錯誤)是系統(tǒng)中的錯誤,程序員是不能改變的和處理的,是在程序編譯時出現(xiàn)的錯誤,只能通過修改程序才能修正。一般是指與虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰,虛擬機(jī)錯誤,內(nèi)存空間不足,方法調(diào)用棧溢等。對于這類錯誤的導(dǎo)致的應(yīng)用程序中斷,僅靠程序本身無法恢復(fù)和和預(yù)防,遇到這樣的錯誤,建議讓程序終止。
Exception(異常)表示程序可以處理的異常,可以捕獲且可能恢復(fù)。遇到這類異常,應(yīng)該盡可能處理異常,使程序恢復(fù)運(yùn)行,而不應(yīng)該隨意終止異常。
Exception又分為兩類
CheckedException:(編譯時異常) 需要用try——catch顯示的捕獲,對于可恢復(fù)的異常使用CheckedException。
UnCheckedException(RuntimeException):(運(yùn)行時異常)不需要捕獲,對于程序錯誤(不可恢復(fù))的異常使用RuntimeException。
常見的RuntimeException異常
illegalArgumentException:此異常表明向方法傳遞了一個不合法或不正確的參數(shù)。
illegalStateException:在不合理或不正確時間內(nèi)喚醒一方法時出現(xiàn)的異常信息。換句話說,即 Java 環(huán)境或 Java 應(yīng)用不滿足請求操作。
NullpointerException:空指針異常(我目前遇見的最多的)
IndexOutOfBoundsException:索引超出邊界異常
常見的CheckedException異常
我們在編寫程序過程中try——catch捕獲到的一場都是CheckedException。
io包中的IOExecption及其子類,都是CheckedException。
舉個簡單的例子(看別人的,覺得很形象,很好理解)
Error和Exception就像是水池和水池里的水的區(qū)別
“水池”,就是代碼正常運(yùn)行的外部環(huán)境,如果水池崩潰(系統(tǒng)崩潰),或者池水溢出(內(nèi)存溢出)等,這些都是跟水池外部環(huán)境有關(guān)。這些就是java中的error
“水池里的水”,就是正常運(yùn)行的代碼,水污染了、有雜質(zhì)了,渾濁了,這些影響水質(zhì)的因素就是Exception。
到此這篇關(guān)于Java之Error與Exception的區(qū)別案例詳解的文章就介紹到這了,更多相關(guān)Java之Error與Exception的區(qū)別內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.cnblogs.com/lcl-dcr/p/7653274.html