16 例外 (try & catch)

| コメント(0)
次のサンプルを コンパイル、実行 をしてみよう。

public class Sample {
    public static void main(String[] args) {
        String s = args[0];
        int a = Integer.parseInt(s);
        System.out.println(a);
    }
}

java Sample 5 と引数に数値なら正常ですが、
java Sample a と引数が数値以外だとエラーになる
  、、NumberFormatException: For input string:
Integer.parseInt(s)で "a" を int型に変換しようとしている。

このように、コンパイルではエラーにならないが予想外のエラーを
例外(Exception) と呼んでいる。

数値を0で割ったり、メモリーオーバーになったり、存在しないファイルを開けたり、
プログラムがエラーで途中に止まってしまわないようにする仕組みが try と catch である。
tyr&catch.bmp
上記のサンプルは次のように書かなければならない。
public class Sample {
    public static void main(String[] args) {
        String s = args[0];
        try {
            int a = Integer.parseInt(s);
            System.out.println(a);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

※finally は省略可能です。

問題16
他に例外が発生する場合は何があるだろうか?