1. 程式人生 > 其它 >Java學習筆記-異常

Java學習筆記-異常

異常部分

Java異常01:Error和Exception

  • 異常是指程式執行中出現的不期而遇的各種狀況,如:檔案找不到、網路連線失敗、非法引數等。
  • 異常發生在程式執行期間,它影響了正常的程式執行步驟。
  • 要理解Jav異常處理是如何工作的,你要掌握一下三種類型的異常:
    • 檢查性異常:最具代表的檢查性異常是使用者錯誤或問題引起的異常,這是程式設計師無法預見的。例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略。(就是公司裡的測試崗位)
    • 執行時異常:執行時異常是可能被程式設計師避免的異常。與檢查性異常相反,執行時異常可以在編譯時被忽略。
    • 錯誤(Error):錯誤不是異常,而是程式設計師控制的問題。錯誤在程式碼中通常被忽略。例如,當棧溢位時,一個錯誤就發生了,它們在編譯也檢查不到的。
  • Java把異常當做物件來處理,並定義了一個基類java.lang.Throwable作為所有異常的超類。
  • 在Java API中已經定義了許多異常類,這些異常類分為兩大類,錯誤Error(無法預見)和異常Exception(通常可以預見)。

Java異常02:捕獲和丟擲異常

丟擲異常

捕獲異常

異常處理5個關鍵字:try、catch、finally、throw、throws

tip:ctrl+alt+T 生成包圍語句的語法

基本語法:

package com.Exception;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        //假設要捕獲多個異常:從小到大!

        try{//try監控區域
            System.out.println(a/b);
            //如果是Throwable 可以捕獲error
            //所以引數型別意思是想要捕獲的異常型別
        }catch(ArithmeticException e){//catch 捕獲異常
            System.out.println("程式出現異常,變數b不能為0!");
        }/*catch(Throwable t){
            //可以catch層層遞進,捕獲多個異常
            //大的異常型別要寫在最後面
        }*/
        finally{//善後工作  可以要可以不要  不管異常不異常都會執行
            System.out.println("finally");
        }

        //finally  假設IO,資源,關閉,就需要放在finally裡面

    }
}

快捷鍵生成try-catch-finally:

package com.Exception;

public class Test02 {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

//        快捷鍵ctrl+alt+T
        try {
            System.out.println((a / b));
        } catch (Exception e) {
            e.printStackTrace();//列印錯誤的棧資訊
        } finally {

        }

    }
}

主動丟擲異常:

package com.Exception;

public class Test03 {
    public static void main(String[] args) {
        new Test03().test(1,0);
    }
    //假設這方法中,處理不了這個異常。
    public void test(int a,int b){
        if(b == 0){
            throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
        }
    }
}

Java異常03:自定義異常及經驗小結

程式碼如下: