捕獲例外:java
Java產生例外對象後,會去尋找可以處理此例外的方法並交之處理,這一過程成爲捕獲(catch)。若找不到,運行時系統將終止程序員
拋棄例外:數組
一個方法若不知道如何處理出現的例外,可聲明拋棄(throws)ide
jdk中,每一個包都定義了例外類,全部的例外類都直接或間接繼承於Throwable類。spa
java中的例外類可分爲兩大類:.net
errororm
exception對象
運行時例外:繼承
繼承於RuntimeException的類都屬於運行時例外,如算數(除零),數組越界等,因爲例外產生的位置是未知的,java編譯器容許程序員在程序中不對它們做出處理。事件
非運行時例外:
除運行時例外,即是非運行時例外,如FIleNotFindException(文件未找到例外),java編譯器要求對這種例外必須做出處理,捕獲例外或拋棄例外
例外的處理
捕獲例外
經過try-catch-finally語句實現
try:try語句所限定的代碼塊在執行過程中可能會產生例外對象並拋棄。
catch:每一個try塊能夠伴隨一個或多個catch語句,用於處理try塊中所生成的例外事件。catch語句只需一個形參指明它所可以捕獲的例外類型,這個類必須Throwable的子類,運行時系統經過參數值把被拋棄的例外對象傳遞給catch塊。
類Throwable提供了getMessage()方法:獲得異常的相關信息,printStackTrace()用來跟蹤事件發生時執行堆棧的內容。
catch語句的順序,第一個例外捕獲到後,剩下catch再也不捕獲。故catch安排的順序應該爲從特殊到通常。即先安排子類在安排父類。
finally:爲統一的出口,不管有無例外,都會執行。
拋棄例外:
若是一個方法中生成了一個例外,可是這一方法並不確切地知道該如何處理這一異常事件。
此時,這一方法應當聲明拋棄例外,使得例外對象能夠從調用棧向後傳播,直到有合適的方法捕獲它爲止。
聲明拋棄:
聲明拋棄例外實在一個方法聲明中的throws子句中指明的。
public int read() throws IOException {
...
}
拋出例外:
拋出例外就是產生例外對象的過程。首先生成例外對象,由虛擬機或者某些類的實例生成。經過throw語句實現。
IOException e = new IOException();
throw e;
PS:有問題能夠在http://java.tanzhouedu.net,或在羣:457036818中提出