Javaのチェック例外と非チェック例外

理想

java.lang.Object
 └ java.lang.Throwable
   ├ java.lang.Error
   ├ java.lang.Exception
   └ java.lang.RuntimeException

現実

java.lang.Object
 └ java.lang.Throwable
   ├ java.lang.Error
   └ java.lang.Exception
     └ java.lang.RuntimeException


困ったものだ。