Effective Javaの読書メモも今回でいちおう一区切り。エッセンス本だから一つにはまとめられなかった。この本はつまみ食い的に読んでいくのが一番いいかもしれない。
項目58 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する
- チェックされる例外のポイント
- APIの呼び出し側がエラーとなる状況を適切に回復できる場合はチェックされる例外を使用する
- 同じパラメータを渡しても状況によって実行可能だったり不可能になったりするようなときは回復可能な状況であることが多い
- チェックされる例外を使用しているということは、メソッド呼び出しの結果としてその関連する状況が起こる可能性があることを明確に示している
- APIの設計者はその例外が発生した状況から回復することを要求している
- 実行時例外のポイント
項目59 チェックされる例外を不必要に使用するのを避ける
- チェックされる例外の特徴はプログラマに例外状態の処理を強制することにある
- チェックされる例外を適用する状況は?
- throws Exceptionは最悪なのでやっては駄目 絶対駄目(テストコードは除く)
- チェックされる例外をチェックされない例外に変更する方法
項目60 標準例外を使用する
代表的なチェックされない例外
- IllegalArgumentException:パラメータが不適切
- IllegalStateException:メソッド呼び出しに対してオブジェクト状態が不正
- NullPointerException:パラメータ値が禁止されているnull
- IndexOutOfBoundsException:インデックスパラメータ値が範囲外
- ConcurrentModificationException:禁止されているオブジェクトの並行した変更を検出
- UnsupportedOperationException:オブジェクトがメソッドをサポートしていない
ただし、ユーザ入力の誤り検出としてIllegalArgumentExceptionを投げるのは誤った使い方。この場合は、チェック処理は別で行い、チェック済であるはずなのに不正な値が渡された場合に投げるのが正しい(クラスの使い方をどこかで誤っているはずなので)。
参考文献
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 77人 クリック: 936回
- この商品を含むブログ (266件) を見る