今更なんだけど、javaの例外処理について簡単な纏め、目も書き。
javaの例外はError系例外(クラスは語尾にErrorが付く)とException系例外に分けられる。
また、チェック例外と非チェック例外にも分けられる。
Error系例外は、通常プログラムの続行が不可能になるような重大なエラーであるため、例外処理はしない。
OutOfMemoryErorrなど。
チェック系例外は、必ずtry-catch節も用いてコーディングする必要があり、コンパイラがコンパイル時に適切な例外処理がされているかをチェックする。
非チェック系例外は、try-catch節でコーディングする必要もなく、コンパイラもコンパイル時にチェックしない。プログラムの実行時に例外が発生する(Error系例外は全て非チェック例外)
クラスの階層構造で言うと、Errorクラスから継承されているクラスはError系例外クラス。
Exceptionクラスから継承されているクラスはException系例外クラス。
(ErrorとExceptionはThrowableを継承している)
また、Error系例外クラスとExceptionクラスを継承しているRuntimeExceptionクラス以下は非チェック例外で、それ以外のException系クラスはチェック例外。