Javaの基本比較問題
Javaにおける「チェック例外(checked exception)」と「非チェック例外(unchecked exception)」の違いとして正しいものはどれですか?
A.チェック例外はコンパイル時に処理が強制され、非チェック例外はコンパイル時に処理が強制されない← 正解
✓ 正解です。チェック例外はコンパイラがtry-catchまたはthrowsによる処理を強制しますが、非チェック例外は強制されません。
B.チェック例外はRuntimeExceptionのサブクラスであり、非チェック例外はExceptionのサブクラスである
✗ 逆です。RuntimeExceptionとそのサブクラスが非チェック例外であり、チェック例外はExceptionのサブクラスです。
C.非チェック例外はtry-catchで捕捉できないが、チェック例外はtry-catchで捕捉できる
✗ 誤りです。非チェック例外もtry-catchブロックで捕捉することは可能です。強制されないだけです。
D.チェック例外も非チェック例外も、どちらもコンパイル時に必ず処理が要求される
✗ 誤りです。コンパイル時に処理が要求されるのはチェック例外のみで、非チェック例外は要求されません。