IT科技

當前位置 /首頁/IT科技 > /列表

exception,java

java中的exception一般來説是代表異常,而異常也就是屬於異常機制,異常機制指的是當程序出現了錯誤之後,程序需要如何處理。簡單來説,就是異常機制提供了程序退出的安全通道,而當出現錯誤後,程序執行的流程就會發生改變,程序的控制權也會轉移到異常處理器。

exception(即異常)一般也就是指程序本身能夠處理的異常。在exception類中有一個重要的子類RuntimeException。RuntimeException類以及其子類所表示的是“JVM常用操作”引發的錯誤。

java exception

此外,exception(異常)通常可分為兩大類,即運行時異常與非運行時異常(編譯異常)。若是在運行過程中出現了應當儘可能地去處理這些異常。

運行時異常

都是屬於RuntimeException類及其子類異常,比如NullPointerException(即空指針異常)、IndexOutOfBoundsException(即下標越界異常)等,這些異常是屬於不檢查異常,程序中能夠選擇捕獲處理,也能不處理。

需要注意的是,這些異常通常是由於程序邏輯錯誤而導致的,程序應該要從邏輯角度儘可能的避免這類異常的發生。而運行時異常的特點就是Java編譯器不會去檢查它,也就是説,當程序中可能會出現這類異常時,即使是沒有用try-catch語句捕獲它,也沒有使用throws子句聲明拋出它,通常也是會直接編譯通過的。

非運行時異常 (即編譯異常)

這是屬於RuntimeException以外的異常,其在類型上都屬於exception類以及其子類。若是從程序語法角度來看,這是必須要進行處理的異常,若是不及時處理的話,程序就不能夠編譯通過。比如IOException、SQLException等及用户自定義的exception異常,正常情況下就會不自定義檢查異常。

java exception 第2張

當然,在Java中的異常是可以分為可查的異常(即checked exceptions)與不可查的異常(即unchecked exceptions)的。

可查異常也就是編譯器要求必須處置的異常,一般來説正確的程序在運行中時,是很容易出現的、可理解的異常狀況。

不可查異常也就是編譯器不要求強制處置的異常,通常包括運行時的異常與錯誤。

一般來説,若需要處理這些異常會有專門的異常處理的機制,即在Java應用程序當中,其異常處理的機制通常是拋出異常、捕捉異常。

拋出異常

也就是當一個方法出現錯誤引發異常時,方法創建異常對象並且交付運行時系統,異常對象中還包含了異常類型與異常出現時的程序狀態等異常信息。在運行時系統會負責尋找處置異常的代碼並且執行。

捕獲異常

也就是在方法拋出異常之後,運行時系統將會轉為尋找合適的異常處理器,而潛在的異常處理器是屬於異常發生時依次存留於調用棧中的方法的集合。當異常處理器所能夠處理的異常類型與方法拋出的異常類型相符時,代表是屬於合適的異常處理器。

運行時系統從發生異常的方法開始,會依次回查調用棧中的方法,直到能夠找到含有合適異常處理器的方法並且執行,若是運行時系統遍歷調用棧而並未找到合適的異常處理器,那麼在運行時系統就會終止。

TAG標籤:java exception #