On Tue, Sep 3, 2019 at 1:19 PM Rob Spoor <apa...@icemanx.nl> wrote: > Why limit this to IllegalArgument? Why not make it more generic? For > instance, in ExceptionUtils: > > public static <T extends Throwable> T format(final Function<? super > String, ? extends T> factory, final String format, final Object... args) { > return factory.apply(String.format(format, args)); > } > > public static <T extends Throwable> T format(final BiFunction<? super > String, ? super Throwable, ? extends T> factory, final Throwable t, > final String format, final Object... args) { > return factory.apply(String.format(format, args), t); > } > > These can then be called using > ExceptionUtils.format(IllegalArgumentException::new, "message: %s", > message) or ExceptionUtils.format(IllegalArgumentException::new, cause, > "message: %s", message). > > It's a bit verbose though, but it gives a lot more flexibility. >
Yes, we could add these to ExceptionUtils separately IMO; but, the verbosity is an issue for me. This is straightforward: throw IllegalArgumentExceptions.format(e, "%s: %s %s operation %s: %s", source, method, pathSpec, operation.getOperationId(), e.toString()); The following not as much: throw ExceptionUtils.format(IllegalArgumentException::new, e, "%s: %s %s operation %s: %s", source, method, pathSpec, operation.getOperationId(), e.toString()); So it could be that IllegalArgumentExceptions.format() is implemented in terms of ExceptionUtils.format but there does not seem to be much to gain from that. Gary > > On 03/09/2019 19:04, Gary Gregory wrote: > > Please read the source. > > > > On Tue, Sep 3, 2019, 12:27 Xeno Amess <xenoam...@gmail.com> wrote: > > > >> Why don't you use java.lang.IllegalArgumentException instead? > >> And, why we need such a class, but not using > >> java.lang.IllegalArgumentException there? > >> > >> Gary Gregory <garydgreg...@gmail.com> 于2019年9月3日周二 下午11:18写道: > >>> > >>> Hi All: > >>> > >>> I propose we take > >>> > >> > https://commons.apache.org/proper/commons-text/xref/org/apache/commons/text/lookup/IllegalArgumentExceptions.html#IllegalArgumentExceptions > >>> and make it a public class in [lang]. FWIW, I use a class like this in > >> many > >>> projects at work. > >>> > >>> Gary > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >