【Java SE17 Silver 模擬試験】A-42

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコードについて正しい説明はどれですか。

public class Main {
	public static void main(String... args) {
		try {
			Integer[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
			for (int i = 0; i <= nums.length; ++i) {
				System.out.print(nums[i] + " ");
			}
		} catch (NullPointerException e) {
			System.out.println("catch:NPE");
		} catch (OutOfMemoryError e) {
			System.out.println("catch:OOME");
		}
	}
}

選択肢

A)Error クラスは catch ブロックに指定できないためコンパイルエラーになる

B)try ブロックで発生する可能性がある例外に対応した catch 句が定義されていないのでコンパイルエラーになる

C)コードをコンパイル、実行すると 1 2 3 4 5 6 7 8 9 10 が出力され、正常に終了する

D)RuntimeException は catrch ブロックに指定できないためコンパイルエラーになる

E)コードをコンパイル、実行すると 1 2 3 4 5 6 7 8 9 10 が出力され、java.lang.ArrayIndexOutOfBoundsException がスローされる

解答

A)Error クラスは catch ブロックに指定できないためコンパイルエラーになる

B)try ブロックで発生する可能性がある例外に対応した catch 句が定義されていないのでコンパイルエラーになる

C)コードをコンパイル、実行すると 1 2 3 4 5 6 7 8 9 10 が出力され、正常に終了する

D)RuntimeException は catrch ブロックに指定できないためコンパイルエラーになる

E)コードをコンパイル、実行すると 1 2 3 4 5 6 7 8 9 10 が出力され、java.lang.ArrayIndexOutOfBoundsException がスローされる

解説

for文の条件式で、i <= nums.lengthと、配列の要素数以上のアクセスを行なっているため、1 2 3 4 5 6 7 8 9 10 が出力され、java.lang.ArrayIndexOutOfBoundsException がスローされます。

前の問題へ SE17_A-41

次の問題へ SE17_A-43


対象資格:Java SE17 認定資格