Hi. Le mer. 4 sept. 2019 à 02:53, Gary Gregory <garydgreg...@gmail.com> a écrit : > > Here is the PR with [lang]'s own call sites updated to use the new code. > > Gary > > On Tue, Sep 3, 2019 at 2:13 PM Gary Gregory <garydgreg...@gmail.com> wrote: > > > 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).
API looks a little bit strange (throw a "format"?) Perhaps: ---CUT--- throw IllegalArgumentExceptionFactory.withFormat(...); ---CUT--- Is there additional customization foreseen (that may require a "builder")? Also, wouldn't it be useful to not perform the formatting unconditionally but rather when "getMessage() is called? Gilles > >> > >> 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