Это хорошая практика, чтобы определить функцию таким образом, чтобы вместо броска она возвращала исключение?
Например, просто чтобы избежать ранней инициализации объекта исключения, я передаю функцию, которая несет ответственностьпостроить и вернуть исключение, если условие выполнено.
Я определил мой валидатор с этим методом
static <T> Validator<T> validator(Predicate<T> predicate, Function<T, RuntimeException> execGen)
и validate
реализация метода, например:
{
if(!predicate.test(data))
{
throw execGen.apply(data);
}
// do something else
}