さまざまな種類のエラー処理とリソース管理を実装してください。
プログラミングで重要なのは、エラーが起きたときでも、エラーを適切に処理してリソースを閉じる方法です。
この演習では、さまざまなエラーを処理する必要があります。エラー処理はプログラミング言語によって大きく異なるため、何が必要なのかを正確に知るには、自分のトラックのテストを参照する必要があります。
この演習では、例外を処理する必要があります。例外とは、プログラムの実行中に発生し、プログラムの命令の通常の流れを妨げる事象のことです。
Javaには、チェック例外と非チェック例外の2種類があります。
チェック例外は、コンパイル時にチェックされる例外です。
チェック例外をスローする可能性のあるメソッドでは、その例外をメソッドシグネチャで宣言しなければなりません。また、チェック例外をスローする可能性のあるメソッドを呼び出すときは、その例外を処理するか再スローする必要があります。
これは、チェック例外が実行時に処理されることを前提としているためです。つまり、回復できるエラーだということです。
メソッドが有効な結果を返せないときに、よく使われます。たとえば、探していた項目を見つけられなかった検索メソッドなどです。
これは、nullやエラーコードを返すことの代わりになります。チェック例外はこうした方法よりも優れています。メソッドの利用者にエラーの場合を考えさせるからです。
非チェック例外は、コンパイル時にチェックされない例外です。
非チェック例外をスローする可能性のあるメソッドで、その例外をメソッドシグネチャで宣言する必要はありません。また、非チェック例外をスローする可能性のあるメソッドを呼び出すときも、それを処理したり再スローしたりする必要はありません。
非チェック例外は通常、プログラムの欠陥が原因で発生し、適切にコードを書くことで防げます。例:ArrayIndexOutOfBoundsExceptionは、配列のインデックスが0と配列の長さの間にあるようにすれば防げます。