JAVAの例外クラスは、Throwableというクラスがあります。
throw文で投げることができ、catch節で受け止めることができるクラスはすべてThrowableクラスが元になっています。
Throwableは、大きく分けてErrorとExceptionの2つに分類でできます。
- Error
もはや動作を継続するのは期待できないときに投げられるエラー
- Exception
正しく例外処理を行って、動作が継続することを期待するときのエラー
————————————————————————
さらに「Exception」は2種類に分けられます
- Exception → RuntimeException
実行中に起こり、コンパイラによって前もってチェックされない例外(unchecked例外とも言う)
- Exception → RuntimeException以外のエラー
コンパイラによって前もってチェックされる例外(checked例外とも言う)
————————————————————————
checked例外とunchecked例外の2種類に分かれます。
それぞれ取り扱う例外の種類が違うので、以下にまとめます。
- unchecked例外
実行中のプログラムが原因で発生する例外(任意記述)
メモリ不足やプログラムの例外処理では復旧できない例外
- checked例外
必ず任意の例外処理を記述しなければならないです。(必須記述)
記述しない場合はコンパイルエラーになります。
DBが原因だったり、java実行環境以外の環境が原因の例外
checked例外の場合、次の2種類の方法で必ず例外処理を書かなければなりません
- ①メソッド内のcatch節でその例外をキャッチします
void Test() { try { throw new IOException(); } catch (IOException e) { } }
- ②メソッド内のthrows節でその例外を投げることを宣言します
void Test() throws IOException { throw new IOException(); }