Java之Error與Exception的區(qū)別案例詳解
首先,Error類和Exception類都是繼承Throwable類
Error(錯誤)是系統(tǒng)中的錯誤,程序員是不能改變的和處理的,是在程序編譯時出現(xiàn)的錯誤,只能通過修改程序才能修正。一般是指與虛擬機相關(guān)的問題,如系統(tǒng)崩潰,虛擬機錯誤,內(nèi)存空間不足,方法調(diào)用棧溢等。對于這類錯誤的導致的應用程序中斷,僅靠程序本身無法恢復和和預防,遇到這樣的錯誤,建議讓程序終止。
Exception(異常)表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程序恢復運行,而不應該隨意終止異常。
Exception又分為兩類
CheckedException:(編譯時異常) 需要用try——catch顯示的捕獲,對于可恢復的異常使用CheckedException。
UnCheckedException(RuntimeException):(運行時異常)不需要捕獲,對于程序錯誤(不可恢復)的異常使用RuntimeException。
常見的RuntimeException異常
illegalArgumentException:此異常表明向方法傳遞了一個不合法或不正確的參數(shù)。
illegalStateException:在不合理或不正確時間內(nèi)喚醒一方法時出現(xiàn)的異常信息。換句話說,即 Java 環(huán)境或 Java 應用不滿足請求操作。
NullpointerException:空指針異常(我目前遇見的最多的)
IndexOutOfBoundsException:索引超出邊界異常
常見的CheckedException異常
我們在編寫程序過程中try——catch捕獲到的一場都是CheckedException。
io包中的IOExecption及其子類,都是CheckedException。
舉個簡單的例子(看別人的,覺得很形象,很好理解)
Error和Exception就像是水池和水池里的水的區(qū)別
“水池”,就是代碼正常運行的外部環(huán)境,如果水池崩潰(系統(tǒng)崩潰),或者池水溢出(內(nèi)存溢出)等,這些都是跟水池外部環(huán)境有關(guān)。這些就是java中的error
“水池里的水”,就是正常運行的代碼,水污染了、有雜質(zhì)了,渾濁了,這些影響水質(zhì)的因素就是Exception。
到此這篇關(guān)于Java之Error與Exception的區(qū)別案例詳解的文章就介紹到這了,更多相關(guān)Java之Error與Exception的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java中Exception和Error的區(qū)別詳解
- Java異常 Factory method''sqlSessionFactory''rew exception;ested exception is java.lang.NoSuchMethodError:
- SpringBoot異常: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext解決方案
- Java異常處理操作 Throwable、Exception、Error
- Mybatis配置錯誤:java.lang.ExceptionInInitializerError
相關(guān)文章
SpringBoot+ShardingSphereJDBC實現(xiàn)讀寫分離詳情
這篇文章主要介紹了SpringBoot+ShardingSphereJDBC實現(xiàn)讀寫分離詳情,通過用??MySQL??進行一主一從的主從復制展開全文內(nèi)容,需要的朋友可以參考一下2022-08-08java運行時數(shù)據(jù)區(qū)域和類結(jié)構(gòu)詳解
這篇文章主要介紹了java運行時數(shù)據(jù)區(qū)域和類結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07mybatis之調(diào)用帶輸出參數(shù)的存儲過程(Oracle)
這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲過程(Oracle),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11