Java的異常捕捉機制
阿新 • • 發佈:2018-12-10
要求:
編譯一個 java程式,完成實現計算絕對值表示式 |a-b|的功能。要求當b比a大時人為丟擲一個自定義異常,在計算絕對值時通過異常捕捉機制完成此絕對值表示式的計算。
1)首先自定義一個異常繼承Exception
package jisuan01;
public class MyException extends Exception{ //構建自定義異常,繼承Exception類
public MyException(String Error) { //構造方法
super(Error); //繼承父類的構造方法
}
}
2)然後通過throws宣告丟擲異常,和throw丟擲異常資訊,並通過try-catch函式捕捉異常並進行異常處理,具體原始碼如下:
package jisuan01;
import java.util.Scanner;
public class jisuan01 {
public static double yichang (double a, double b) throws MyException {//定義方法丟擲異常
double c;
if(a<b) { //判斷a是否小於b
throw new MyException("此時a<b,出現異常!"); //錯誤資訊
}
else {
c=a-b;
}
return c;//返回值
}
public static void main(String[]args){
double a, b;
while(true){//無限迴圈
System.out.println("請輸入a:");
Scanner sc1=new Scanner(System.in);
a=sc1.nextDouble();//把輸入的值給a
System.out.println("請輸入b:");
Scanner sc2=new Scanner(System.in);
b=sc1.nextDouble(); //把輸入的值給b
try {
double c = yichang(a, b); //呼叫yichang函式
System.out.println("|a-b|="+c);//輸出yichang函式返回值
}
catch(MyException e){
double c1;
c1=b-a;
System.out.println(e);//輸出異常資訊
System.out.println("|a-b|="+c1); //出現異常,輸出|a-b|的值
}
}
}
}
執行結果如下所示: