Martin Fowler виклав цікаву (принаймні для мене) статтю.
Ідея така що коли пишеш валідатори потрібно не викидати ексепшини, а робити список повідомлень.
Тобто замінити ось такий код
class BookingRequest…
public void check() {
if (date == null) throw new IllegalArgumentException("date is missing");
LocalDate parsedDate;
try {
parsedDate = LocalDate.parse(date);
}
catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid format for date", e);
}
if (parsedDate.isBefore(LocalDate.now())) throw new IllegalArgumentException("date cannot be before today");
if (numberOfSeats == null) throw new IllegalArgumentException("number of seats cannot be null");
if (numberOfSeats < 1) throw new IllegalArgumentException("number of seats must be positive");
}
на
class BookingRequest…private void validateNumberOfSeats(Notification note) {
if (numberOfSeats == null) {
note.addError("number of seats cannot be null");
return;
}
if (numberOfSeats < 1) note.addError("number of seats must be positive");
}Оскільки в моєму поточному проекті багато перевірок, думаю варто спробувати такий підхід