Java學習筆記-異常
阿新 • • 發佈:2022-02-27
異常部分
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:自定義異常及經驗小結
程式碼如下: