On 15 Jan 2016 at 10:38:05, vincent(a)massol.net
(vincent@massol.net(mailto:vincent@massol.net)) wrote:
On 15 Jan 2016 at 10:34:58, Thomas Mortagne
(thomas.mortagne@xwiki.com(mailto:thomas.mortagne@xwiki.com)) wrote:
On Fri, Jan 15, 2016 at 9:18 AM,
vincent(a)massol.net wrote:
On 15 Jan 2016 at 07:24:35, Marius Dumitru Florea
(mariusdumitru.florea@xwiki.com(mailto:mariusdumitru.florea@xwiki.com)) wrote:
On Thu, Jan 14, 2016 at 6:51 PM,
vincent(a)massol.net
wrote:
> Hi devs,
>
> Right now our strategy is for script services and script APIs in general
> to catch exceptions, store them and offer a getLastError() method to get
> them (see
>
http://extensions.xwiki.org/xwiki/bin/view/Extension/Script+Module#HBestPra…
> )
>
> However it would be much nicer to:
> * Let our script services generate exceptions
> * Offer a velocity script service to get the last exception raised by a
> java call from velocity
> * Implement this uberspector to catch the exceptions and to set them in
> the execution context
>
> That should be quite easy to implement IMO.
>
> WDYT?
>
+1, it's a pain to call setLastError() everywhere there can be an exception
thrown, and we almost always forget to do it (for this reason).
Note that we also have the #try() directive now.
Yes, I should have mentioned that there’s indeed also this possibility:
* Have script API throw Exceptions
* Force velocity script users to wrap their code with the try directive when they need to
catch exceptions
I still believe that the use of the Exception-catching uberspector is better.
WDYT?
Does it mean you plan to get rid of new #try directive ? Because it
will be broken with this new uberspector.
That’s a good point, I had not thought about the implementation at this stage.
I think this could still work. When the #try directive is used I’d just have to setup
some flag somewhere in Velocity and in the uberspector I could check if this flag is set
and if so then don’t catch the exception.
Actually, thinking more, I think you’re right and that the #try directive plays exactly
the same role as an Exception-catching uberspector and I don’t see the need for the #try
directive if we provide an uberspector.
So I’m proposing to deprecate it but still keep it for backward compatibility for now
(probably a full cycle).
WDYT?
Thanks
-Vincent
Thanks
-Vincent
> > Thanks
> > -Vincent
> >
> >> Thanks,
> >> Marius
> >>
> >>
> >> >
> >> > Thanks
> >> > -Vincent
> >> >
> >> > PS: This is
http://jira.xwiki.org/browse/XWIKI-2374