Java 異常類學習總結

2021-09-01 06:34:00 字數 1275 閱讀 2830

一、首先來看一下error和exception的區別:     

寫程式時難免會出現錯誤,有些錯誤可能是因為系統原因,記憶體等原因造成的,這類錯誤我們稱作error,我們並不希望它發生,所以應該盡量避免它(當然這屬於不可抗力),或者當出現這類錯誤的時候終止程式,error一般是非檢查性錯誤,編譯時可以通過。

而另一類錯誤是程式設計師在程式設計時考慮不全面造成的,是人為因素,我們稱其為異常,exception,當異常出現時,多數情況下我們不希望程式終止,而是希望去捕獲它。比如有一段操控印表機的程式,當印表機中沒有紙的時候,我們不希望程式結束執行,而是希望 其丟擲乙個異常提示。exception既有檢查型異常、也有非檢查型異常異常,又叫執行時異常。

二、exception的分類:

①runtimeexception(執行時錯誤):比如陣列溢位、除0、字串和數字格式弄混等等。

②檢查性錯誤:一般該類異常無法通過編譯。

三、異常處理:

1、不處理:主要對於runtimeexception類及其子類的異常物件的處理,最後又虛擬機器處理。

2、try,catch,finally捕獲:

try--finally結構會上拋異常,但異常語句後面的程式不再執行(和書上說的不一樣)。

3、throws、throw丟擲異常:

前者用在函式名宣告時,後者用在方法體內。   

在使用throw時,如果是丟擲runtimeexception的類或者其子類,throws可以沒有,上一級中的catch、throws也可以沒有(感覺throw一般用在自定義的異常處理中、throw可以拋出自定義異常提示資訊)。

但如果是其他的異常類,用了throw就一定要有對應的throws,同時上一級中藥捕獲或者顯式丟擲。

不使用throw只使用throws時,同樣執行異常與檢查異常區別對待。

4、ps:

①對於執行異常類runtimeexception或者其子類的異常物件(exception類的物件就不行,因為它是run...的父類),我們可以不做任何處理,此時(應該是有子方法預設丟擲給主方法,然後由虛擬機器來處理),或者用catch捕獲異常、或者throws丟擲異常都可以(部分用,部分不用也行)。

②而對於非(上述)執行時異常的異常物件,catch和throws二選一(必須)。

③若本身產生的異常是runtimeexception的類物件或子類物件 但 catch捕獲時或者throws丟擲時所用的引數是exception等非執行時異常的物件,那麼在上一級中也必須二選一。

-四、自定義異常。

注意繼承自throwable/exception/runtimeexception類。

Java 異常總結

1 乙個圖 error 程式不可解決 exception 分兩種,一為必須進行處理的,一為可以不進行處理的,為runtimeexception.2 五個關鍵字 try catch finally throw throws 3 先捕捉小的,再捕捉大的異常 正確 trycatch filenotfoun...

Java總結 異常

異常 程式出現的不正常情況。異常的體系 throwable error 嚴重問題,我們不處理。exception runtimeexception 執行期異常,我們需要修正 非runtimeexception 編譯期異常,必須處理的,否則程式編譯不通過 異常的處理 a.jvm的預設處理 把異常的名稱...

java常用異常類

異常類名稱 異常類含義 arithmeticexception 算數異常類 arrayindexoutofbound ception 陣列小標越界異常 arraystoreexception 將與陣列型別不相容的值賦值給陣列元素時丟擲的異常 classcastexception 型別強制轉換異常類 ...