程序設計中關於Java 異常處理應註意的問題
阿新 • • 發佈:2018-05-28
異常處理 try...catch Java 異常處理初識
}
} int a = in.nextInt();
int b = in.nextInt();
int div = a / b;
System.out.println("a/b=" +div);
} catch (InputMismatchException e) {
System.out.println("輸入數據有誤!");
}
catch (ArithmeticException e) {
System.out.println("除數為零!");
}
}
}
程序像這樣,就能在出現異常時,程序能符合邏輯的正常運行。
- 下面程序,雖能運行,但當數據輸入有誤時程序不能正常結束,也就是說,程序本身沒有進行異常處理。
例題001 用Java編寫程序。輸入兩個整數,輸出它們的商。
import java.util.Scanner;
public class MyAdd {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int div = a / b;
System.out.println("a/b=" + div);
}
- 下面程序,雖能進行異常處理,但是把異常影響的相關代碼相分離,沒有很好的掌握異常處理邏輯。
例題002 用Java編寫程序。輸入兩個整數,輸出它們的商。
import java.util.InputMismatchException;
import java.util.Scanner;
public class MyDiv {
int a, b, di;
public MyDiv() { super(); try { Scanner in = new Scanner(System.in); a = in.nextInt(); b = in.nextInt(); } catch (InputMismatchException e) { System.out.println("輸入數據有誤!"); } } int caculate() { try { di = a / b; } catch (ArithmeticException e) { System.out.println("除數為零!"); } return di; } public static void main(String[] args) { MyDiv div = new MyDiv(); System.out.println("a/b=" + div.caculate()); }
}
例如,當輸入aa bb時,程序結果為:
輸入數據有誤!
除數為零!
a/b=0
3.比較好的做法,是將異常影響的相關代碼放到一起,放在try{ }中,對各種異常分別用相關catch(...){...}處理。
例題003 用Java編寫程序。輸入兩個整數,輸出它們的商。
import java.util.InputMismatchException;
import java.util.Scanner;
public class MyDiv {
public static void main(String[] args) {
try {
Scanner in = new Scanner(System.in);
int b = in.nextInt();
int div = a / b;
System.out.println("a/b=" +div);
} catch (InputMismatchException e) {
System.out.println("輸入數據有誤!");
}
catch (ArithmeticException e) {
System.out.println("除數為零!");
}
}
}
程序像這樣,就能在出現異常時,程序能符合邏輯的正常運行。
程序設計中關於Java 異常處理應註意的問題