Рекомендуется ли исключать исключения из методов проверки, например:
ValidateDates();
ValidateCargoDetails();
Кроме этого: часто используется шаблон шаблона проверки достоверности?
Рекомендуется ли исключать исключения из методов проверки, например:
ValidateDates();
ValidateCargoDetails();
Кроме этого: часто используется шаблон шаблона проверки достоверности?
Я бы предложил вернуть объект ValidationResult, содержащий ValidationFailures. Вы никогда не должны использовать исключения как часть вашего логического кодирования. Исключения для исключений
Я обычно использую visitor pattern
для проверки ввода; скопировав все ошибки в список или что-то, чтобы показать пользователя. Логика идет, проверяя список ошибок проверки, если он найден, информирует пользователя, в противном случае хорошо идти.
IMO, ошибки проверки не являются чем-то исключительным, поэтому его не следует рассматривать как один.
Я бы сказал, все зависит от того, что/как вы делаете проверку. Но в конце концов разработчик всегда может игнорировать возвращенный результат (это проблема с ними), они не могут игнорировать исключение, не записывая явный код для этого.
Ало зависит от того, насколько важны исключительные ошибки проверки, насколько важно, чтобы это было правильно.
Если ваши ошибки проверки являются редкими и серьезными или смертельными, когда они возникают, я бы использовал исключения или даже AssertionErrors. Большинство парсеров используют Исключения, и это указывает на невозможность продолжения обработки.
Если ваш отказ проверки ожидается как при нормальных операциях и не указывает, что вы не можете продолжать обработку, я бы предложил использовать шаблон посетителя или вернуть список проблем (который может быть пустым)
Исключение броска должно не использоваться для управления потоком приложения. Как следует из названия, это происходит в случаях исключительных, в то время как проверка может обычно терпеть неудачу. Они также дорогие и влияют на производительность.
Я бы пошел с возвратом булевой плюс строка для причины.
Пользователи, вводящие неверные данные, являются самим определением исключения. При написании бизнес-требований для решения вы всегда записываете пути без ошибок в качестве основных путей потока и ошибок в качестве исключительных путей. Использование исключений для проверки вполне приемлемо. Проверка с помощью исключений также позволяет вам определить приоритет порядка в том, как они обрабатываются, и обрабатывать ошибку по-разному в зависимости от того, на каком уровне вы находитесь в стеке архитектуры (строка, описывающая ошибку, мало используется на уровне доступа к данным).