程序設計中關於Java 異常處理應注意的問題

Java 異常處理初識

  1. 下面程序,雖能運行,但當數據輸入有誤時程序不能正常結束,也就是說,程序本身沒有進行異常處理。

例題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);
}
}

  1. 下面程序,雖能進行異常處理,但是把異常影響的相關代碼相分離,沒有很好的掌握異常處理邏輯。

例題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 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("除數爲零!");
}
}
}
程序像這樣,就能在出現異常時,程序能符合邏輯的正常運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章