検査例外 【checked exception】 チェック例外
概要
検査例外(checked exception)とは、Javaで発生する例外(exception)のうち、メソッドの呼び出し側にtry-catch文による例外処理の記述が要請されるもの。ファイルの読み込み失敗などが該当する。Javaでは実行時に発生するトラブルのためにThrowableクラスが用意されており、プログラム側でどうすることもできないもの(メモリ不足など)は「エラー」(Errorクラス)、プログラム側で対処可能なものは「例外」(Exceptionクラス)として整理されている。
例外のうち、Runtime Exceptionクラスに分類されないものを検査例外という。プログラムを正しく記述していたとしても外部要因などで実行時にどうしても発生してしまう例外で、検査例外を投げるメソッドを実行するコードはtry文によって例外を拾い、catch文で対処方法を記述しなければコンパイルエラーとなる。
検査例外に分類される例外としては、ファイル入出力の失敗(IOException)やSQL実行の失敗(SQLException)、クラス定義が見つからない(ClassNotFoundException)、スレッドに割り込みが発生した(InterruptEdexception)などがある。
一方、Runtime Exceptionに分類される例外は「非検査例外」(unchecked exception)あるいは「非チェック例外」と呼ばれ、try-catch文で対応しなくても文法上は問題とならない。これにはNullPointerExceptionなどが該当し、基本的にはどれも正しくプログラムが記述できていれば避けられるものとなっている。
(2022.4.15更新)