Java檢查異常、非檢查異常、運行時異常、非運行時異常的區別


Java把所有的非正常情況分為兩種:異常(Exception)和錯誤(Error),它們都繼承Throwable父類。 

Java的異常(Exception和Error)分為檢查異常和非檢查的異常。

其中根據Exception異常進行分類,可分為運行時異常和非運行時異常。

 

檢查異常:

就是編譯器要求你必須處理的異常。比如我們在編程某個文件的讀於寫時,編譯器要求你必須要對某段代碼try....catch... 或者 throws exception,這就是檢查異常,簡單的來說,你代碼還沒有運行,編碼器就會檢查你的代碼,對可能出現的異常必須做出相對的處理。(比如當文件不存在時..)

如何處理檢查異常:

1、繼續往上拋出,(這是一個消極的方法),一直可以拋到java虛擬機來處理,通過throw exception拋出。

2、用try...catch捕獲

(提示) 對於檢查時的異常必須處理,或者必須捕獲或者必須拋出

 檢查異常大概有哪些?

除了RuntimeException與其派生類(子類),以及錯誤(Error)。其他的差不多都是檢查異常。

非檢查異常:

編譯器不要求強制處置的異常,雖然有可能出現錯誤,但是我不會在編譯的時候檢查。

如何處理非檢查異常:

1、try....catch捕獲

2、繼續拋出

3、不處理

這類異常一般我們是不處理的,因為會很判斷會出現什么問題,而且有些異常你也無法運行時處理,比如空指針。

非檢查異常有哪些:

RuntimeException與其子類,以及錯誤(Error)

 

Exception異常進行划分,它可分為運行時異常和非運行時異常。

運行時異常:

都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標越界異常)等,這些異常是非檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度盡可能避免這類異常的發生。

運行時異常的特點是Java編譯器不會檢查它,也就是說,當程序中可能出現這類異常,即使沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯通過

 

非運行時異常:

是RuntimeException以外的異常,類型上都屬於Exception類及其子類。從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不要自定義檢查異常。

https://www.cnblogs.com/oukele/p/10035238.html

 

1、簡介

 

###############################################################

 

#########################################

 

https://www.cnblogs.com/zhuiyiyujinxiang/p/4707517.html

 

https://processon.com/view/54e04d67e4b0c4be3d43cb2b#map

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM