使用する頻度はそれほど多くは無いのですが、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を利用すると便利です。