Kodrill

Java SE 17 Silver (1Z0-825-JPN) 試験 / 例外処理 ・ 無料問題 5/5

例外処理 問題5[try-catch文による例外処理]

次のコードをコンパイルした結果として正しいものを選んでください。

Main.java
public class Main {    public static void main(String[] args) {        try {            int[] a = new int[2];            a[2] = 1;        } catch (RuntimeException e) {            System.out.println("runtime");        } catch (ArrayIndexOutOfBoundsException e) {            System.out.println("index");        }    }}

選択肢

  • A.コンパイルに成功し、実行すると runtime と出力される
  • B.コンパイルに成功し、実行すると index と出力される
  • C.8行目でコンパイルエラーになる正解
  • D.6行目でコンパイルエラーになる

解説実行して確認済み

catch ブロックは上から順に判定されます。ArrayIndexOutOfBoundsException は RuntimeException のサブクラスなので、先に書いた catch (RuntimeException e) で必ず捕捉され、後ろの catch には到達しません。到達できない catch ブロックはコンパイルエラーになるため、8行目がエラーです。サブクラスの catch を先に書く必要があります。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「例外処理」の要点を解説記事で読む

「例外処理」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。