Java異常,exception 和錯誤 error異常的5個關鍵詞try catch finally throw thorws.

捕獲異常可以讓即是程序出現錯誤也不會終止運行,還可以處理異常.

一、異常處理框架.

在這裏插入圖片描述

二、異常處理的5個關鍵詞.

1.try 嘗試,

2.catch 捕獲異常.

3.finally :無論是否異常都會執行.

4.throw :用於方法中拋出異常,

5.throws: 用於方法修飾,拋出異常.

三、實例

1.try catch finally 組合使用.

package opp.Exception異常;

public class Demo {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try {
            System.out.println(a/b);
        } catch (ArithmeticException e) {
            System.out.println("a/b 出現異常ArithmeticException捕獲成功!");
            e.printStackTrace();
        }finally {
            System.out.println("finally run successfully.經常用於一些異常的處理和流的關閉.");
        }
    }
}


輸出
a/b 出現異常捕獲成功!
finally run successfully.經常用於一些異常的處理和流的關閉.
java.lang.ArithmeticException: / by zero
	at opp.Exception異常.Demo.main(Demo.java:8)

try 後面爲需要捕捉異常的代碼塊
catch()中爲需要捕獲的異常類型
catch(){// 。。。} 花括號中爲捕獲異常成功後的執行語句
finally{} 中爲無論如何都會執行的finally語句通常用於關閉流(IO 資源等.)

2.多重catch語句例子

package opp.Exception異常;

public class Demo2多重catch {
    public static void main(String[] args) {
        try {
            new Demo2多重catch().a();
        } catch (Error e) {
            System.out.println("第一個catch捕獲Error成功");
        }catch (Exception e){
            System.out.println("第二個catch捕獲Exception成功");
        }catch (Throwable e){
            System.out.println("第三個catch捕獲最大的異常類Throwable 成功");
        }finally {
            System.out.println("finally 語句運行成功");
        }

    }
    public void a(){
        b();
    }
    public void b(){
        a();
    }
}
輸出結果
第一個catch捕獲Error成功
finally 語句運行成功

結論:

1.捕獲的類型比較大的放到後面.
2…

===============================

3. 實例:throw,在方法中主動拋出異常.

package opp.Exception異常;

public class Throw方法中主動拋出異常 {
    public static void main(String[] args) {
        new Throw方法中主動拋出異常().devide(1,0);
    }
    private void devide(int a ,int b){
        if(b == 0){
            System.out.println("拋出異常成功!");
            throw new ArithmeticException();//拋出數據數據異常.
        }
    }
}
輸出結果:
拋出異常成功!
Exception in thread "main" java.lang.ArithmeticException
	at opp.Exception異常.Throw方法中主動拋出異常.devide(Throw方法中主動拋出異常.java:10)
	at opp.Exception異常.Throw方法中主動拋出異常.main(Throw方法中主動拋出異常.java:5)

4. throws == try+catch?

處理異常有 拋出throws 和捕獲try ,catch.
拋出經常用於方法中,把異常拋到上一級,讓調用這個方法的位置來try catch.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章