70.復帰可能な状況では検査例外を用い、プログラミングエラー?に対しては実行時例外を用いる
-
指針としては、呼び出し側が復帰できるような状況で出力される例外は、検査例外とする。復帰できないものは非検査例外。
-
復帰可能か否か判別がつかない場合は非検査例外とすべき。(item71で説明)
-
Error クラスは慣習的にリソース欠乏時などにJVMによって出力されるものであり、Errorのサブクラスをプログラマーが作ることはまずない。そのため、非検査例外のうちでimplementsしうるのはRuntimeExceptionのみである。
-
Throwablesを直接継承した例外を定義してはならない。検査例外を継承しないことによるメリットがないし、ユーザを混乱させてしまうため。