例外

以前勉強したときにあまり深く勉強しなかったということで、例外を復習してみました。本当は、Effective Java 第2版 (The Java Series)
の例外のところを読むはずだったんですが、難しいというか、日本語?が英語直訳な感じで難しかったので、改訂第2版 Java言語プログラミングレッスン (下)
でとりあえず復習しました。

例外の階層

Object
 →java.lang.Throwable
   →java.lang.Error
   →java.lang.Exception
      →java.lang.RuntimeException
      →それ以外のException

チェックされる例外、されない例外

非検査例外

コンパイラにチェックされない例外
Error
RunTimeException


検査例外

コンパイラにチェックされる例外
階層図の中のそれ以外のException

使用法

void someMethod() {
   ....
   ....
   try {
     ...
     hogeMethod();
   } catch (IOException e) {
     ....
   }
}
void hogeMethod() throws IOException {
   ...
   throw new IOException();
}

チェックされない例外


チェックされないのは、どこで起こってもおかしくないような例外だから。


ArrayIndexOutOfBoundsException
OutOfMemoryError

など。


Androidとか作ってる時は、OutOfMemoryErrorとかなのかな。


これらを気にし過ぎると、throws節ばかりのコードになってしまい、わけわからなくなる。

という基本的なところがまぁ書いてあったわけですが、「Effective Java」な方は今週一杯かけて読み直さねば理解できなさそうですな、とほほ。