×
例外処理
throw と throws は名前が酷似していますが、文法上の役割と記述場所が明確に異なります。 throw の直後には、必ず Throwable のインスタンス(new された例外オブジェクトまたは例外変数)を1つ指定します。throw の直後にクラス名だけを書くこと(例: throw IllegalArgumentException;)はコンパイルエラーです。 throws の直後には、1つ以上の例外クラス名をカンマ区切りで列挙します(例: throws IOException, SQLException)。 また、メソッドをオーバーライドする際、子クラス側の throws 節には「親クラスのメソッドが宣言している検査例外と同等、またはそのサブクラスの例外」しか指定できません。親よりも範囲が広い検査例外を新しく追加して throws に宣言するとコンパイルエラーになります。

試験でのポイント