Java把全部的非正常狀況分爲兩種:異常(Exception)和錯誤(Error),它們都繼承Throwable父類。 html
Java的異常(Exception和Error)分爲檢查異常和非檢查的異常。java
其中根據Exception異常進行分類,可分爲運行時異常和非運行時異常。編程
檢查異常:
就是編譯器要求你必須處理的異常。好比咱們在編程某個文件的讀於寫時,編譯器要求你必需要對某段代碼try....catch... 或者 throws exception,這就是檢查異常,簡單的來講,你代碼尚未運行,編碼器就會檢查你的代碼,對可能出現的異常必須作出相對的處理。(好比當文件不存在時..)ui
如何處理檢查異常:
一、繼續往上拋出,(這是一個消極的方法),一直能夠拋到java虛擬機來處理,經過throw exception拋出。編碼
二、用try...catch捕獲spa
(提示) 對於檢查時的異常必須處理,或者必須捕獲或者必須拋出3d
檢查異常大概有哪些?
除了RuntimeException與其派生類(子類),以及錯誤(Error)。其餘的差很少都是檢查異常。指針
非檢查異常:
編譯器不要求強制處置的異常,雖然有可能出現錯誤,可是我不會在編譯的時候檢查。htm
如何處理非檢查異常:
一、try....catch捕獲blog
二、繼續拋出
三、不處理
這類異常通常咱們是不處理的,由於會很判斷會出現什麼問題,並且有些異常你也沒法運行時處理,好比空指針。
非檢查異常有哪些:
RuntimeException與其子類,以及錯誤(Error)
Exception異常進行劃分,它可分爲運行時異常和非運行時異常。
運行時異常:
都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標越界異常)等,這些異常是非檢查異常,程序中能夠選擇捕獲處理,也能夠不處理。這些異常通常是由程序邏輯錯誤引發的,程序應該從邏輯角度儘量避免這類異常的發生。
運行時異常的特色是Java編譯器不會檢查它,也就是說,當程序中可能出現這類異常,即便沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯經過
非運行時異常:
是RuntimeException之外的異常,類型上都屬於Exception類及其子類。從程序語法角度講是必須進行處理的異常,若是不處理,程序就不能編譯經過。如IOException、SQLException等以及用戶自定義的Exception異常,通常狀況下不要自定義檢查異常。
https://www.cnblogs.com/oukele/p/10035238.html
一、簡介
###############################################################
#########################################
https://www.cnblogs.com/zhuiyiyujinxiang/p/4707517.html
https://processon.com/view/54e04d67e4b0c4be3d43cb2b#map