【Java SE17 Silver 模擬試験】B-09

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

問題

次のコード断片では throws MyException を省略するとコンパイルエラーになる原因とその説明として正しいものはどれですか。(2つ選択)

public void method() throws MyException {
	//処理コード
}

選択肢

A)method( ) ではjava.lang.Exceptionをスローできる

B)MyException はチェック例外である

C)MyException は非チェック例外である

D)method( ) ではMyException のサブクラスをスローできる

E)method( ) ではMyException のみをスローできる

F)MyException はエラーである

解答

A)method( ) ではjava.lang.Exceptionをスローできる

B)MyException はチェック例外である

C)MyException は非チェック例外である

D)method( ) ではMyException のサブクラスをスローできる

E)method( ) ではMyException のみをスローできる

F)MyException はエラーである

解説

次のコード断片で throws MyException を省略するとコンパイルエラーになる原因として正しい選択肢は以下の通りです。

B)MyException はチェック例外である

  • 説明: チェック例外は、メソッドがスローする可能性がある場合、必ずそのメソッドのシグネチャで throws 宣言をしなければなりません。もし MyException がチェック例外であれば、throws MyException を省略するとコンパイルエラーが発生します。

D)method( ) ではMyException のサブクラスをスローできる

  • 説明: メソッドが throws MyException を宣言している場合、そのメソッド内で MyException のサブクラスもスローすることができます。省略すると、MyException およびそのサブクラスをスローすることができなくなるため、コンパイルエラーが発生します。

A)method( ) ではjava.lang.Exceptionをスローできる

  • 理由: java.lang.Exception はスローできるかもしれませんが、特定の例外がスローされるときは、明示的にその例外を宣言する必要があります。この選択肢は、このコードの文脈では正確ではありません。

C)MyException は非チェック例外である

  • 理由: チェック例外が throws 宣言を必要とするため、MyException が非チェック例外である場合、throws MyException を省略してもエラーにはなりません。したがって、正しくない選択肢です。

E)method( ) ではMyException のみをスローできる

  • 理由: throws を省略した場合、MyException およびそのサブクラスだけでなく、他のチェック例外や非チェック例外もスローできるため、この選択肢は誤りです。

F)MyException はエラーである

  • 理由: MyException がエラーであれば、チェック例外の概念には該当しません。チェック例外であれば、エラーの代わりに例外として扱われます。このため、正しくない選択肢です。

まとめ

選択肢 A、C、E、F は、throws MyException を省略することによるコンパイルエラーの原因として正しくないため、誤りです。

前の問題へ SE17_B-08

次の問題へ SE17_B-10

対象資格:Java SE17 認定資格