新聞中心
Error與Exception有什么區(qū)別?
Error和Exception的聯(lián)系

繼承結(jié)構(gòu):Error和Exception都是繼承于Throwable,RuntimeException繼承自Exception。
Error和RuntimeException及其子類稱為未檢查異常(Unchecked exception),其它異常成為受檢查異常(Checked Exception)。
Error和Exception的區(qū)別
Error類一般是指與虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰,虛擬機(jī)錯(cuò)誤,內(nèi)存空間不足,方法調(diào)用棧溢出等。如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。對于這類錯(cuò)誤,Java編譯器不去檢查他們。對于這類錯(cuò)誤的導(dǎo)致的應(yīng)用程序中斷,僅靠程序本身無法恢復(fù)和預(yù)防,遇到這樣的錯(cuò)誤,建議讓程序終止。
Exception類表示程序可以處理的異常,可以捕獲且可能恢復(fù)。遇到這類異常,應(yīng)該盡可能處理異常,使程序恢復(fù)運(yùn)行,而不應(yīng)該隨意終止異常。
運(yùn)行時(shí)異常和受檢查的異常
Exception又分為運(yùn)行時(shí)異常(Runtime Exception)和受檢查的異常(Checked Exception )。
RuntimeException:其特點(diǎn)是Java編譯器不去檢查它,也就是說,當(dāng)程序中可能出現(xiàn)這類異常時(shí),即使沒有用try……catch捕獲,也沒有用throws拋出,還是會(huì)編譯通過,如除數(shù)為零的ArithmeticException、錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組越界訪問和試圖訪問空指針等。處理RuntimeException的原則是:如果出現(xiàn)RuntimeException,那么一定是程序員的錯(cuò)誤。
受檢查的異常(IOException等):這類異常如果沒有try……catch也沒有throws拋出,編譯是通不過的。這類異常一般是外部錯(cuò)誤,例如文件找不到、試圖從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。
cetch循環(huán)原理和內(nèi)容?
cetch循環(huán)原理是義務(wù)中有多層循環(huán),必須確認(rèn)循環(huán)發(fā)生異常時(shí)是否該結(jié)束,try catch 塊在 循環(huán)內(nèi),發(fā)生異常時(shí)拋出異常信息,但不結(jié)束循環(huán);
try catch 塊在 循環(huán)外,發(fā)生異常時(shí)拋出異常信息,并結(jié)束循環(huán);異??赡軙?huì)被捕獲掉,比如上面catch聲明的是捕獲Exception,那么所有Exception包括子類都會(huì)被捕獲,但如Error或者是Throwable但又不是Exception(Exception繼承Throwable)就不會(huì)被捕獲。
如果異常被捕獲,就會(huì)執(zhí)行catch里面的代碼.如果異常沒有被捕獲,就會(huì)往外拋出,相當(dāng)于這整個(gè)方法出現(xiàn)了異常。
到此,以上就是小編對于java異常處理throws例子的問題就介紹到這了,希望這2點(diǎn)解答對大家有用。
網(wǎng)站題目:Java異常處理Throwable實(shí)現(xiàn)方法解析
分享路徑:http://m.5511xx.com/article/dpjceog.html


咨詢
建站咨詢
