捕獲和丟擲異常
阿新 • • 發佈:2022-03-14
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 0;
try{
System.out.println(a/b);
}//try 監控區域
catch(ArithmeticException e){//catch括號內的引數是 想要捕獲的異常型別
System.out.println("程式出現異常,變數b不能為0");
}//catch 捕獲異常,出現異常就執行catch裡面的語句
finally{
System.out.println("finally");
}//finally 善後工作,無論有沒有異常都會執行
//捕獲:try和catch必須要有,finally可以不要
}
}
-
假設要捕獲多個異常,catch可以寫多個,要從小到大!
catch(Error e){
System.out.println("Error");
}
catch(Exception e){
System.out.println("Exception");
}
catch(Throwable e){
System.out.println("Throwable");
} -
快捷鍵:Ctrl + Alt + T
丟擲
public class Test {
public static void main(String[] args) {
new Test().test(1,0);
}
public void test(int a,int b){
if(b==0){
throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
}
System.out.println(a/b);
}
}
public class Test {
public static void main(String[] args) {
try {
new Test().test(1,0);
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
//假設這個方法中,處理不了這個異常,在方法上丟擲異常
public void test(int a,int b) throws ArithmeticException{
if(b==0){
throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
}
System.out.println(a/b);
}
}