どんなプログラムも、予期しないエラーが発生します。そのときに対処するのが例外処理です。

問題 - 例外処理「難易度:低」

次のようなJavaプログラムがあります。

int a = 10;
int b = 0;
int c = 999;

try {
c = a/b;
} catch(Exception e) {
    System.out.println("この計算はできません。");
} finally {
    System.out.println(c);

さて、出力される結果はどのようなものでしょうか?

どんなプログラムも、予期しないエラーが発生します。そのときに対処するのが例外処理です。

問題 - 例外処理「難易度:低」

次のようなJavaプログラムがあります。

int a = 10;
int b = 0;
int c = 999;

try {
c = a/b;
} catch(Exception e) {
    System.out.println("この計算はできません。");
} finally {
    System.out.println(c);

さて、出力される結果はどのようなものでしょうか?

解答

この計算はできません。
999

解説

変数aの値が10、bの値が0なので、a/bは0で割る計算となりエラーとなります。例外処理では、tryブロックでエラーが発生した場合は、catchブロックの処理が実行されます。そのため、まず「この計算はできません。」が出力されます。finallyブロックの処理はtryブロックでエラーが発生するしないにかかわらず、必ず実行されるので、そのあとに変数cに代入された値がSystem.out.printlnで出力されます。今回の場合は、tryブロックで変数cに値が代入できなかったので、初期値の「999」が出力されます。

例外処理はプログラマの腕の見せどころ。うまく使いこなそう。