java exception是什么呢?下面就讓我們一起來了解一下吧:
java中的exception一般來說是代表異常,而異常也就是屬于異常機制,異常機制指的是當程序出現(xiàn)了錯誤之后,程序需要如何處理。簡單來說,就是異常機制提供了程序退出的安全通道,而當出現(xiàn)錯誤后,程序執(zhí)行的流程就會發(fā)生改變,程序的控制權也會轉移到異常處理器。
exception(即異常)一般也就是指程序本身能夠處理的異常。在exception類中有一個重要的子類RuntimeException。RuntimeException類以及其子類所表示的是“JVM常用操作”引發(fā)的錯誤。
此外,exception(異常)通??煞譃閮纱箢悾催\行時異常與非運行時異常(編譯異常)。若是在運行過程中出現(xiàn)了應當盡可能地去處理這些異常。
運行時異常
都是屬于RuntimeException類及其子類異常,比如NullPointerException(即空指針異常)、IndexOutOfBoundsException(即下標越界異常)等,這些異常是屬于不檢查異常,程序中能夠選擇捕獲處理,也能不處理。
需要注意的是,這些異常通常是由于程序邏輯錯誤而導致的,程序應該要從邏輯角度盡可能的避免這類異常的發(fā)生。而運行時異常的特點就是Java編譯器不會去檢查它,也就是說,當程序中可能會出現(xiàn)這類異常時,即使是沒有用try-catch語句捕獲它,也沒有使用throws子句聲明拋出它,通常也是會直接編譯通過的。
非運行時異常 (即編譯異常)
這是屬于RuntimeException以外的異常,其在類型上都屬于exception類以及其子類。若是從程序語法角度來看,這是必須要進行處理的異常,若是不及時處理的話,程序就不能夠編譯通過。比如IOException、SQLException等及用戶自定義的exception異常,正常情況下就會不自定義檢查異常。
當然,在Java中的異常是可以分為可查的異常(即checked exceptions)與不可查的異常(即unchecked exceptions)的。
可查異常也就是編譯器要求必須處置的異常,一般來說正確的程序在運行中時,是很容易出現(xiàn)的、可理解的異常狀況。
而不可查異常也就是編譯器不要求強制處置的異常,通常包括運行時的異常與錯誤。
一般來說,若需要處理這些異常會有專門的異常處理的機制,即在Java應用程序當中,其異常處理的機制通常是拋出異常、捕捉異常。
拋出異常
也就是當一個方法出現(xiàn)錯誤引發(fā)異常時,方法創(chuàng)建異常對象并且交付運行時系統(tǒng),異常對象中還包含了異常類型與異常出現(xiàn)時的程序狀態(tài)等異常信息。在運行時系統(tǒng)會負責尋找處置異常的代碼并且執(zhí)行。
捕獲異常
也就是在方法拋出異常之后,運行時系統(tǒng)將會轉為尋找合適的異常處理器,而潛在的異常處理器是屬于異常發(fā)生時依次存留于調用棧中的方法的集合。當異常處理器所能夠處理的異常類型與方法拋出的異常類型相符時,代表是屬于合適的異常處理器。
運行時系統(tǒng)從發(fā)生異常的方法開始,會依次回查調用棧中的方法,直到能夠找到含有合適異常處理器的方法并且執(zhí)行,若是運行時系統(tǒng)遍歷調用棧而并未找到合適的異常處理器,那么在運行時系統(tǒng)就會終止。
以上就是小編的分享了,希望能夠幫助到大家。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com