velocity-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Will Glass-Husain" <wgl...@forio.com>
Subject Re: RuntimeExceptions
Date Tue, 03 Jan 2006 19:13:31 GMT
Thanks for the comments on RuntimeExceptions.  I'll go ahead and apply this 
to the source code.

I think it will simplify life for developers, in particular those writing 
plugsins.

And as previously suggested in an earlier thread, for Velocity 2.0 I 
definitely want to move to unchecked Exceptions exclusively.

WILL

----- Original Message ----- 
From: "Llewellyn Falco" <isidore@setgame.com>
To: "Velocity Developers List" <velocity-dev@jakarta.apache.org>
Sent: Tuesday, January 03, 2006 8:53 AM
Subject: Re: RuntimeExceptions


> +1
>
>
>
> I especially agree with the removal of any exception handling where the 
> handling is to log the error. as my log files are not read nearly often 
> enough for this to work.
>
>
>
>
>
>
>
> I wanted to talk a bit about the Uberspect & the Testable Uberspect.
>
> I think it is a very good thing to develop with the Testable, since it 
> will catch mistakes in velocity simply and obviously.
>
> which can really make development much less frustrating.
>
>
>
> and for this reason, would wonder if it might be  a good default, because 
> beginners( to anything)  tend to get frustrated easily
>
>
>
>
>
> That said, the LoggingUberspect  (the current one) has obvious advantages 
> in Production because at that level you are not going to be there to fix 
> things, and if something goes wrong you don't want the page to be 
> completely gone because a small portion might not have been displayed 
> right.
>
>
>
> of course, i would argue, that by the time you reach production, you have 
> lost you beginner status :-)
>
>
>
> llewellyn.
>
>
>
>
>
> ----- Original Message ----- 
> From: "Will Glass-Husain" <wglass@forio.com>
> To: <velocity-dev@jakarta.apache.org>
> Sent: Monday, January 02, 2006 7:03 AM
> Subject: RuntimeExceptions
>
>
> First, happy new year to the Velocity developer community...
>
> I've been pondering how Velocity handles exceptions. Right now, almost 
> every call to a plugin has a catch-all Exception handler which does little 
> more than log the Exception.  There's been a couple of requests in the 
> past few months to pass RuntimeExceptions or similar through.
>
> * In Velocity-424, Malcolm Edgar wanted NPEs from a call to toString to 
> pass through a #parse.  (we did this).
> * Llewelyn Falco created a "TestableUberspect" which interrupted 
> processing upon an invalid method call.
> * There was someone else (can't find the reference) who wanted to 
> interrupt processing when confronted with an invalid method call.
>
> I was wondering, why does Velocity intercept every exception?  Isn't the 
> point of a RuntimeException that it signals an application-level problem 
> that should be returned to the calling code?  In addition, we should allow 
> plugins (event handlers, uberspectors, resource loaders) to interrupt 
> processing for critical problems.  To me, there seems three choices.
>
> (1) Catch every unexpected condition and do something with it (e.g. catch 
> NPE from toString() and wrap it in a MethodInvocationException).  Logging 
> does not count as doing something.
>
> (2) Create a special VelocityRuntimeException that plugins can use to 
> interrupt processing.  Every generic catch (Exception E) wrapper would 
> pass this through.  (I've coded this though not applied the patch).
>
> (3) Remove all generic Exception catch's.  (or if not feasible, always 
> pass RuntimeException's through).
>
> To me, option #1 seems infeasible.  (if we start wrapping toString, we'd 
> need to wrap a lot of other little stuff).  Option #2 is useful for 
> plugins to interrupt processing.  But I'm wondering, why not do option #3 
> and just pass through all RuntimeExceptions.  Any reason why we *should* 
> be catching unexpected RuntimeException's?
>
> Appreciate other thoughts...
>
> Best,
> WILL
>
>
>
>
>
>
>
> _______________________________________
> Forio Business Simulations
>
> Will Glass-Husain
> phone (415) 440-7500 x89
> mobile (415) 235-4293
> wglass@forio.com
> www.forio.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-dev-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-dev-help@jakarta.apache.org


Mime
View raw message