commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <gillese...@gmail.com>
Subject Re: [lang] org.apache.commons.text.lookup.IllegalArgumentExceptions to [lang].
Date Wed, 04 Sep 2019 11:16:58 GMT
Hi.

Le mer. 4 sept. 2019 à 02:53, Gary Gregory <garydgregory@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 <garydgregory@gmail.com> wrote:
>
> > On Tue, Sep 3, 2019 at 1:19 PM Rob Spoor <apache@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 <xenoamess@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 <garydgregory@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-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message