使用する頻度はそれほど多くは無いのですが、try catch構文には finallyを記述することもできます。finallyを使用したプログラムをひとつ挙げます。
ソースコードは以下の通り。
O701/MySystem.java(ライブラリをそのまま利用します)
O701/O701.java
/**
* finallyの動作を確認します。
*/
public class O701 {
/**
* メインメソッド。
* @param args 引数
*/
public static void main(String[] args) {
System.out.println("整数同士の除算をします");
int value = MySystem.in.getInt("値を入力してください");
int div = MySystem.in.getInt("割る数を入力してください");
try {
int answer = value / div;
System.out.println("除算の結果は " + answer + "です。");
} catch(ArithmeticException e) {
System.out.println("ArithmeticExceptionを受け取りました。");
} finally {
System.out.println("処理を終えました。");
}
}
}
実行結果の例は以下の通り。
整数同士の除算をします 値を入力してください? 100 割る数を入力してください? 7 除算の結果は 14です。 処理を終えました。
整数同士の除算をします 値を入力してください? 100 割る数を入力してください? 0 ArithmeticExceptionを受け取りました。 処理を終えました。
例外の発生の有無に関わらず finallyブロック内が実行されていることが分かります。例外の発生の有無に関わらず、必ず最後に実行したい処理がある場合、finallyを利用すると便利です。