java 異常處理之宣告丟擲異常
阿新 • • 發佈:2018-11-05
java 異常處理宣告丟擲異常
2.宣告丟擲異常是Java中處理異常的第二種方式
- 如果一個方法(中的語句執行時)可能生成某種異常,但是並不能確定如何處理這種異常,則此方法應顯示地宣告丟擲異常,表明該方法將不對這些異常進行處理,而由該方法的呼叫者負責處理。
- 在方法宣告中用throws語句可以宣告丟擲異常的列表,throws後面的異常型別可以是方法中產生的異常型別,也可以是它的父類。
宣告丟擲異常舉例:
public class TestException2 { //常規處理方式 public static void main(String[] args) { TestException2 t = new TestException2(); try { t.method2(); } catch (IOException e) { e.printStackTrace(); } } //拋,常規不使用該方式處理異常 public static void main(String[] args) throws IOException{//main方法在往上就是JVM了 TestException2 t = new TestException2(); t.method2(); } public void method2() throws IOException{//往上拋,拋給他的呼叫者 method1(); } public void method1() throws FileNotFoundException,IOException{//往上拋,拋給他的呼叫者 FileImageInputStream fis = new FileImageInputStream(new File("testEception.txt")); int b; while((b = fis.read()) != -1) { System.out.println((char)b); } fis.close(); } }
總結:
- 格式,如:public void method1() throws FileNotFoundException,IOException{}
- 當此方法在內部出現異常的時候,會丟擲一個異常類物件,拋給方法的呼叫者。
- 異常的物件可以逐層向上拋,直至main中,在向上拋的過程中,可以通過try-catch-finally捕獲處理。
- 使用的時候一般不會這個逐層往上拋,一般會在某個特定地方進行處理(try-catch),因為如果誰都不處理這個問題的話,程式就停止運行了。
- 核心思想:(try-catch)在專案中使用最多,其在出現異常的時候,就是告訴程式怎麼處理,如果一直丟擲,那最後要處理的人,很可能就是不知道,當初出現問題是什麼?
- 專案中,一般不是編譯不過的,不會用異常處理,具體是原因,可以思考一下,回覆哩。。