You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Kristian Marinkovic <kr...@porsche.co.at> on 2009/02/10 08:51:37 UTC

Re: Looking for 'magic RuntimeException wrapper' after component throws checked Exception

it would we nice to be able to add an exception handler for such an 
exception

... onExceptionFromCheckedException(Exception e)

checked exceptions are always related to the business domain and usually 
always 
need to be refelected in the user interface in an apropriate way

see also https://issues.apache.org/jira/browse/TAP5-44 

:)

g,
kris




Howard Lewis Ship <hl...@gmail.com> 
10.02.2009 02:13
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
Tapestry users <us...@tapestry.apache.org>
Kopie

Thema
Re: Looking for 'magic RuntimeException wrapper' after component throws 
checked Exception







The question is: what should you do with thrown exceptions from such a 
method?

I wonder if we could go further down the meta-programming path, by
introducing a method annotation to clue Tapestry in to what to do in
case of a thrown exception in the method ... and that could be
implemented as method advice provided by yet another
ComponentClassTransformWorker.  They're like potatoe chips! (Bet ya
can't each just one!)

On Mon, Feb 9, 2009 at 3:42 PM, manuel aldana <al...@gmx.de> wrote:
> Thanks, I guess I found it:
>
> RenderPhaseMethodWorker.java line 147:
> builder.addln("catch (RuntimeException ex) { throw ex; }");
> builder.addln("catch (Exception ex) { throw new RuntimeException(ex); 
}");
>
> btw: all this dynamic magic is really nice from runtime-view but also 
really
> tough to debug :)
>
>
> Ulrich Stärk schrieb:
>>
>> This probably happens during class transformation. I'd look somewhere 
in
>> the o.a.t.transform packages.
>>
>> Uli
>>
>> manuel aldana schrieb:
>>>
>>> Hi,
>>>
>>> when a custom component throws a checked Exception it seems to be 
handled
>>> by a kind of Interceptor, but I cannot find it while debugging or 
looking at
>>> source code. I am sure there is some higher exception wrapping magic
>>> involved here (though I haven't found any Interceptor or AOP style
>>> wrapping)...
>>>
>>> This checked exception gets intercepted:
>>> -----
>>> class Comp{
>>>   @BeginRender
>>>   void renderMessage(MarkupWriter writer) throws Exception{
>>>       throw new CheckedException();
>>>   }
>>> }
>>> ----
>>>
>>>
>>> This unchecked exception does not get intercepted:
>>> ----
>>> class Comp{
>>>   @BeginRender
>>>   void renderMessage(MarkupWriter writer) {
>>>       throw new UncheckedException();
>>>   }
>>> }
>>> ----
>>>
>>> thanks.
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
> --
> manuel aldana
> aldana@gmx.de
> software-engineering blog: http://www.aldana-online.de
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org