(Java)メソッドパラメータの正当性検査

「Effective Java」第6章項目23より。大雑把には↓
・メソッドパラメータに対する制約(負ではいけない、nullではいけない、など)はきちんと文書化(ほとんどはjavadocだろう)すべし。
・こうしたパラメータの制約はメソッドの最初で的確に捕捉し、例外をスローすべし。一般的には↓
 - IllegalArgumentException
 - IndexOutOfBoundsException
 - NullPointerException
・publicでないメソッドなら、assertionを使うべし。
※但し、正当性検査のコストが高いか非現実的、且つその検査が処理中に暗黙的に実施されるならば、上記の規則に従う必要はない。



⇒まとめると「メソッド、コンストラクタのパラメータに対する制約を常に意識して文書化し、メソッドの最初でその制約をチェックする習慣をつけましょう。但しやみくもにチェック・例外スローというのはやめましょう。」ということだそうです。

ついつい、コーディングしていると自分ではわかっている暗黙的なこういう制約ってスルーしてしまいがち。文書化を習慣づけなければ駄目ですね、としみじみ思いました(昨日の自分は自分ではないって言うしね(^^;