You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ext2 <xu...@tongtech.com> on 2010/03/26 07:14:20 UTC
try-catch conflict with default-error-handler
Follow route use a default-error-handler for the route, and also defined a
custom exception handle logic using try-catch-pattern.
But if the "myProcessRaiseError" raised exception the catch-clause cannot be
invoked; Why? Is it camel's bug?
<route>
<from uri="ws:... "/>
<bean ...>
<doTry>
<filter>
<simple>${body} == 'firstChoice'</simple>
<bean ref="myProcess" />
<bean ref="myProcessRaiseError"/>
</filter>
<doCatch>
..some error handler...
</doCatch>
</doTry>
<process ...>
</route>
Re: try-catch conflict with default-error-handler
Posted by Claus Ibsen <cl...@gmail.com>.
On Fri, Mar 26, 2010 at 7:30 AM, ext2 <xu...@tongtech.com> wrote:
> Sorry, I forget to say, this is running on camel 2.2;
>
> I have checked the camel's document and source-code; the camel-document say
> " try-catch will disable the error-handler"; but while I checking the
> source-code of camel , it only disable error-handlers of node (which is
> conjunction with doTry pattern).
>
> In the following example, only <filter> processor is conjunction with
> <doTry>. So only filter processor's error-handler is disabled. But
> error-handlers of other processor which defined inside filter is not
> disabled.
>
> So the catch-clause is not invoked. Is it a bug?
>
I have created a ticket to look into it
https://issues.apache.org/activemq/browse/CAMEL-2577
> ---------------------------------------------------------------------------
> Follow route use a default-error-handler for the route, and also defined a
> custom exception handle logic using try-catch-pattern.
>
> But if the "myProcessRaiseError" raised exception the catch-clause cannot be
> invoked; Why? Is it camel's bug?
>
>
> <route>
> <from uri="ws:... "/>
> <bean ...>
> <doTry>
> <filter>
> <simple>${body} == 'firstChoice'</simple>
> <bean ref="myProcess" />
> <bean ref="myProcessRaiseError"/>
> </filter>
> <doCatch>
> ..some error handler...
> </doCatch>
> </doTry>
> <process ...>
> </route>
>
>
>
>
>
>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Re: try-catch conflict with default-error-handler
Posted by ext2 <xu...@tongtech.com>.
Sorry, I forget to say, this is running on camel 2.2;
I have checked the camel's document and source-code; the camel-document say
" try-catch will disable the error-handler"; but while I checking the
source-code of camel , it only disable error-handlers of node (which is
conjunction with doTry pattern).
In the following example, only <filter> processor is conjunction with
<doTry>. So only filter processor's error-handler is disabled. But
error-handlers of other processor which defined inside filter is not
disabled.
So the catch-clause is not invoked. Is it a bug?
---------------------------------------------------------------------------
Follow route use a default-error-handler for the route, and also defined a
custom exception handle logic using try-catch-pattern.
But if the "myProcessRaiseError" raised exception the catch-clause cannot be
invoked; Why? Is it camel's bug?
<route>
<from uri="ws:... "/>
<bean ...>
<doTry>
<filter>
<simple>${body} == 'firstChoice'</simple>
<bean ref="myProcess" />
<bean ref="myProcessRaiseError"/>
</filter>
<doCatch>
..some error handler...
</doCatch>
</doTry>
<process ...>
</route>