以这样的方式定义函数,即不是抛出异常而是抛出异常,这是一种好习惯吗?
例如 为了避免异常对象的早期初始化,我传递了一个函数,该函数负责在条件满足的情况下生成并返回异常。
我已经定义了具有此方法的验证器
static <T> Validator<T> validator(Predicate<T> predicate, Function<T, RuntimeException> execGen)
和validate
方法的实现,例如:
{
if(!predicate.test(data))
{
throw execGen.apply(data);
}
// do something else
}