java學習筆記61 異常的丟擲與捕獲

2021-09-13 02:34:46 字數 1392 閱讀 1977

異常的丟擲:

在類中編寫方法的時候,這個方法中將來被執行的**如果有可能出現異常情況,那麼就"可以"在方法的引數列表後宣告該方法中可能會丟擲的異常型別.

例如:public class test

}1)如果有多個異常型別要丟擲,那麼需要使用逗號隔開.

2)所宣告丟擲的異常是該方法執行後"可能"會出現異常型別

3)異常拋了個方法的呼叫者,誰呼叫的方法誰就負責處理這些異常

異常的捕獲

當我們呼叫了乙個方法,該方法在宣告的時候丟擲了異常,那麼我們作為方法的呼叫者就必須去處理這些被丟擲的異常。

例如:class類中的forname方法的宣告

public static class<?> forname(string classname)throws classnotfoundexception

說明該方法在執行的時候有可能丟擲classnotfoundexception型別的異常,表示要載入的類找不到。

我們呼叫這個方法的時候,就需要對這個丟擲的異常進行處理。

第一種方式是繼續把這些異常丟擲去

例如:public static void main(string args)throws classnotfoundexception

在main方法中呼叫forname方法時候,我們並沒有直接處理這個丟擲的異常,而是繼續把該異常往上丟擲,拋給main方法的呼叫者。

第二種方式是使用try-catch語句塊把丟擲的異常進行捕獲    

例如:public static void main(string args) catch (classnotfoundexception e)

}1)try-catch是嘗試著去捕獲這些**拋的異常,如果try語句塊中的**沒有丟擲異常,那麼try-catch是沒有任何作用的

2)如果try語句塊中的**丟擲了異常,並且丟擲的異常還是catch語句要處理的異常或其子型別異常,那麼這時就會執行catch語句塊中的**,進行異常出現後的處理。

3)異常物件e常用的方法

e.printstacktrace()

引用出堆疊**現的異常跟蹤資訊

e.getmessage()

返回異常的詳細字串資訊(如果有的話)

4)不管方法宣告中丟擲了什麼型別的異常,我們一般都是可以再catch中使用exception型別進行捕獲到的,因為exception是所有異常的父型別。

例如:try catch (exception e)

5)如果**中丟擲了多種異常,也可以使用多個catch來分別捕獲.當然也可以只使用乙個最大的異常exception

例如:try catch (classnotfoundexception e) catch (nosuchmethodexception e) catch (securityexception e)

學習筆記 捕獲和丟擲異常

try 監控區域 catch 想要捕獲的異常型別 finally 處理善後工作,一定執行 throw 多在方法內使用 throw newarithmeticexception arithmeticexception 可替換throws 在方法的宣告定義處使用 public void test int...

Java 丟擲異常 自定義異常類

常用的異常處理方法有 一 try catch 語句 二 throw throws 語句 三 自定義異常類 眾所周知,當程式執行過程中,如果遇到了錯誤 比如陣列下標越界,空指標等 程式就會自動終止,但這種錯誤一般是偶然的,可能是使用者輸入不呵呵程式編寫者的意圖導致,而不是程式本身問題,這是我們要做的,...

java學習筆記 異常

1 異常的限制 當覆蓋方法的時候,只能丟擲在基類方法的異常說明裡列出的那些異常。這個限制很有用,因為這意味著,當基類使用的 應用到期派生類物件的時候,一樣能夠工作。public class exceptionrestrictiontest extends inning implements stor...