Java Silver試験の例外処理に関する問題を解いてスキルを確認しましょう。
問題
次のプログラムを実行した場合に、どの出力が得られるでしょうか?最も適切な選択肢を選んでください。
public class Main {
public static void main(String[] args) {
try {
int[] array = {1, 2, 3};
System.out.println(array[3]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Index out of bounds");
} finally {
System.out.println("Finally block executed");
}
}
}
選択肢
- A. 1 2 3
- B. Index out of bounds Finally block executed
- C. コンパイルエラー
- D. 実行時エラー
答えと解説
回答を見る
答え
B. Index out of bounds Finally block executed
解説
解説のポイント:
- ArrayIndexOutOfBoundsException
- Finallyブロックの実行
このプログラムでは、整数の配列arrayが宣言され、要素は3つ(インデックス0, 1, 2)です。
しかし、array[3]
をアクセスしようとするため、JavaはArrayIndexOutOfBoundsException
をスローします。
このエラーは、配列の有効なインデックス範囲を越えてアクセスしようとしたときに発生します。
catch節はこの例外をキャッチし、「Index out of bounds」というメッセージを表示します。
プログラムが例外を処理したあと、finallyブロックが実行されます。
finallyブロックは、try-catch文が終了する際に必ず実行されるため「Finally block executed」が出力されます。