Я проверяю некоторые входные данные из URL-адреса Restlet в служебном методе (таким образом, если меняются действия, которые я выполняю, я изменяю их только в одном месте, ура).LegalName по существу проверяет значение как буквенно-цифровое, но я могу разрешить другие символы в ближайшее время.
Я стараюсь, чтобы мои исключения имели смысл - какое исключение будет лучшим в этом сценарии?
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 - мы пытаемся использовать несоответствующее значение
- Нет исключения - вернуть пустую строку и зарегистрировать факт совершения нарушения
- Нет исключения - удалить все нежелательные символы, вернуть очищенную строку и зарегистрировать факт
КонечноЯ не первый человек, который должен подтвердить ввод перед: -)