この記事で学習
理解が深まったところ
- 多段の呼び出し階層への対応
検査例外
正しいプログラムを書いても、回避できない例外。
検査例外とは、呼び出し元に何らかの対処を強制する例外である。
対処しないと、コンパイルエラーが発生する。
Exceptionクラスを継承するすべてのものである。
基本的な対処としては以下。
- try-catchで捕捉する方法
- throwsで呼び出し元にゆだねる方法
代表的なものに、以下がある。
- IOException(入出力関係の例外)
- SQLException(DB系の例外)
- ClassNotFoundException(クラスが見つからない)
非検査例外
正しいプログラムを書くことで、回避できる例外。
非検査例外とは、検査例外のような呼び出し元での対処が強制されない例外である。
例えば、Integer.parseInt(String) メソッドは非検査例外の NumberFormatException を送出する可能性があるが、コンパイルエラーは出力されない。
代わりに実行時にエラーが発生する。
Runtime Exceptionクラス系であり、以下のものに代表される。
・NullPointerException(ぬるぽ)
・ArrayIndexOutOfBoundsException(配列で存在しない要素へのアクセス)
・IllegalArgumentException(不正な引数をメソッドに渡した)