ユーティリティメソッドでRestletURLからの入力を検証しています(そうすれば、実行する動作が変更された場合、1か所だけ変更します)。LegalNameは、基本的に値がalphaNumericであることを検証しますが、他の文字をすぐに許可する可能性があります。
私は自分の例外を意味のあるものに保つようにしています-このシナリオではどの例外が最適でしょうか?
public static String getProperty(Request request, String key) {
String value = request.getAttributes().get(key).toString();
// unless something is specifically text, it is a property
if(legalName(value)) return value;
throw new IllegalArgumentException(value);
}
私の考えは次のとおりです。
- IllegalArgumentException-キーが直接無効な結果につながる
- IllegalStateException-不適合な値を使用しようとしています
- 例外なし-空の文字列を返し、違反があったという事実をログに記録します
- 例外なし-不要な文字を削除し、サニタイズされた文字列を返し、事実をログに記録します
確かに私は前に入力を検証しなければならない最初の人ではありません:-)