異常
1、異常
/* 錯誤error和異常exception
錯誤(會導致程式終止-要避免) 異常(儘量避免) 執行時異常-程式會捕獲、非執行(檢查型)異常
1、異常處理機制-丟擲異常 和 捕獲異常
2、程式中出現問題會停止,透過try catch finally監控丟擲程式就可以繼續執行;throw和throws是執行的時候判斷丟擲異常
3、自定義異常-使用Java內建的異常類就可以處理大量的異常了-要用再學吧
*/
package Exc;
public class A1 {
public static void main(String[] args) {
new A1().a1(1,0);
System.out.println(a / b);
}
public void a1(int a, int b) {
if (b == 0) {
throw new ArithmeticException();//throw主動丟擲異常,一般在方法中使用
}
}
/*
//假設在這方法 中 處理不了這個異常,方法上丟擲異常throws
public void a1(int a, int b) throws ArithmeticException{
if (b == 0) {
throw new ArithmeticException();//throw主動丟擲異常,一般在方法中使用
}
}
*/
}
/*
//try catch finally連用 區域內一有異常就捕獲
try {//監控區域
System.out.println(a / b);
} catch (ArithmeticException e) {//捕獲異常-引數是想要捕獲的異常型別-throwable最高階
System.out.println("程式出現異常,變數b不能為0");
} finally {//處理善後工作(可以不要)-處理完了才會去報錯
System.out.println("finally");
}
*/
/*
int a = 1;
int b = 0;
//透過程式碼捕獲異常 try監控區域 catch捕獲異常 finally處理善後工作 Throwable(最高的捕獲異常語句)-Exception-Error
//finally可以不要,但假設IO、資源需要關閉!
try {//監控區域
System.out.println(a/b);
//捕獲多個異常 "要從小到大捕獲" ,否則會報錯
} catch (Error e) {//(想要捕獲的異常型別)捕獲異常
System.out.println("Error");
} catch(Exception f){
System.out.println("Exception");
}catch(Throwable g){
System.out.println("Throwable");
} finally {//處理善後工作
System.out.println("finally");
}
*/
2、快捷鍵處理
//快捷鍵生成,Control+Alt+T選擇生成程式碼
package Exc;
public class A2 {
public static void main(String[] args) {
int a=1;
int b=0;
try {
System.out.println(a/b); //選中這行程式碼,Control+Alt+T選擇生成程式碼
} catch (Exception e) {
throw new RuntimeException(e);//列印錯誤棧資訊,control+左鍵去了解程式碼含義
} finally {
}
}
}