On Tue, Sep 3, 2019 at 8:53 PM Gary Gregory <[email protected]> wrote:
> Here is the PR with [lang]'s own call sites updated to use the new code: > https://github.com/apache/commons-lang/pull/450 Gary > > Gary > > On Tue, Sep 3, 2019 at 2:13 PM Gary Gregory <[email protected]> > wrote: > >> On Tue, Sep 3, 2019 at 1:19 PM Rob Spoor <[email protected]> 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 <[email protected]> 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 <[email protected]> 于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: [email protected] >>> >> For additional commands, e-mail: [email protected] >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>>
