後輩に聞かれたので書いてみる。 Javaクラスはそのクラスが投げるチェック済み例外をすべて、メソッド・シグニチャーの中で宣言する必要があり、またタイプEのチェック済み例外を投げるメソッドを呼ぶメソッドはどれも、Eを捉えるか、同じくE(またはEのスーパークラス)を投げるとして宣言する必要があります。こうすることでJava 言語は、制御がメソッドから出る方法として想定できるものをすべて、強制的に文書化させるのです。 Javaの理論と実践: 例外をめぐる議論 というわけです。というのも寂しいし、なんとも固い感じなのでもうちょっと噛み砕いてみる。 自分が呼び出しているメソッドで例外が投げられる場合、自分が書いているメソッドでその例外を捉えるか、例外を投げる宣言をする必要がある。 具体的に SimpleDateFormat を例にして考えてみる。 SimpleDateFormat の format