velocity-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Will Glass-Husain" <wgl...@forio.com>
Subject TestableUberspect
Date Tue, 03 Jan 2006 19:11:30 GMT
Llewellyn,

Thanks for the idea.  I'm not sure changing the behavior from development to
production is a good idea for everyone.  It's confusing.  Also, the
distinction is not always so clear.  In my app the production server
includes pages that are frequently changed by the user (e.g. those pages are
essentially in development).

But I would like to make this approach more prominent for beginners.  Right
now it's pretty obscure.  Maybe you'd be interested in writing a short
(couple paragraph) tutorial on the Wiki on how to use the TestableUberspect?

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