Java之Error與Exception的區(qū)別案例詳解
首先,Error類和Exception類都是繼承Throwable類
Error(錯(cuò)誤)是系統(tǒng)中的錯(cuò)誤,程序員是不能改變的和處理的,是在程序編譯時(shí)出現(xiàn)的錯(cuò)誤,只能通過修改程序才能修正。一般是指與虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰,虛擬機(jī)錯(cuò)誤,內(nèi)存空間不足,方法調(diào)用棧溢等。對(duì)于這類錯(cuò)誤的導(dǎo)致的應(yīng)用程序中斷,僅靠程序本身無法恢復(fù)和和預(yù)防,遇到這樣的錯(cuò)誤,建議讓程序終止。
Exception(異常)表示程序可以處理的異常,可以捕獲且可能恢復(fù)。遇到這類異常,應(yīng)該盡可能處理異常,使程序恢復(fù)運(yùn)行,而不應(yīng)該隨意終止異常。
Exception又分為兩類
CheckedException:(編譯時(shí)異常) 需要用try——catch顯示的捕獲,對(duì)于可恢復(fù)的異常使用CheckedException。
UnCheckedException(RuntimeException):(運(yùn)行時(shí)異常)不需要捕獲,對(duì)于程序錯(cuò)誤(不可恢復(fù))的異常使用RuntimeException。
常見的RuntimeException異常
illegalArgumentException:此異常表明向方法傳遞了一個(gè)不合法或不正確的參數(shù)。
illegalStateException:在不合理或不正確時(shí)間內(nèi)喚醒一方法時(shí)出現(xiàn)的異常信息。換句話說,即 Java 環(huán)境或 Java 應(yīng)用不滿足請(qǐng)求操作。
NullpointerException:空指針異常(我目前遇見的最多的)
IndexOutOfBoundsException:索引超出邊界異常
常見的CheckedException異常
我們?cè)诰帉懗绦蜻^程中try——catch捕獲到的一場(chǎng)都是CheckedException。
io包中的IOExecption及其子類,都是CheckedException。
舉個(gè)簡單的例子(看別人的,覺得很形象,很好理解)
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)容請(qǐng)搜索腳本之家以前的文章或繼續(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配置錯(cuò)誤:java.lang.ExceptionInInitializerError
相關(guān)文章
SpringBoot+ShardingSphereJDBC實(shí)現(xiàn)讀寫分離詳情
這篇文章主要介紹了SpringBoot+ShardingSphereJDBC實(shí)現(xiàn)讀寫分離詳情,通過用??MySQL??進(jìn)行一主一從的主從復(fù)制展開全文內(nèi)容,需要的朋友可以參考一下2022-08-08java運(yùn)行時(shí)數(shù)據(jù)區(qū)域和類結(jié)構(gòu)詳解
這篇文章主要介紹了java運(yùn)行時(shí)數(shù)據(jù)區(qū)域和類結(jié)構(gòu),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java基礎(chǔ)知識(shí)精通各種運(yùn)算符
計(jì)算機(jī)的最基本用途之一就是執(zhí)行數(shù)學(xué)運(yùn)算,作為一門計(jì)算機(jī)語言,Java也提供了一套豐富的運(yùn)算符來操縱變量,本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2022-04-04mybatis之調(diào)用帶輸出參數(shù)的存儲(chǔ)過程(Oracle)
這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲(chǔ)過程(Oracle),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11詳解如何保護(hù)SpringBoot配置文件中的敏感信息
使用過SpringBoot配置文件的朋友都知道,資源文件中的內(nèi)容通常情況下是明文顯示,安全性就比較低一些,所以為了提高安全性,就需要對(duì)配置文件中的敏感信息進(jìn)行保護(hù),下面就為大家介紹一下實(shí)現(xiàn)方法吧2023-07-07