Javaのチェック例外に対して勘違いしてた
Java7の新機能についてまとめてくれたブログを読んだのだけど、次の疑問があったので調べてみた。
チェック例外をキャッチして再送する場合はthrowsに書かなくてもよいとは知らんかった。どうしてだ?? / “JDK 7の新機能(主に言語仕様の変更)で遊ぶ - Starlight -Little Programmer’s Diary-” htn.to/bBEoYw
— 電波蟻さん (@radio_ant) 8月 30, 2012
調べてみて気づいたのだけど、チェック例外について勝手に勘違いして一人で混乱してた。
チェック例外はバイトコードレベルで特別な何かをされるため、メソッド内でスローする例外の型がthrows節に記述する型と同一かサブクラスでなければならないと思い込んでた。
よく考えればわかることだけどバイトコードレベルで特殊なことしてたらScalaなどのJVMを対象とする他言語でチェック例外を非チェック例外として扱うことができないよね。。。