Thanks willem:

It seems that the onException has a little different difference to
try-catch;

That's : 
try-catch could recover the exception and continue to execute next processor
in pipeline
But on-Exception always stop execute when exception occurs in pipeline

I am not very sure about this(But according  the camel 2.2's source code ,it
does so, and I have tried a simple sample to prove this); if it does only
works as such means, the onException cannot replace try-catch completely;


Willem wrote:

>How about using the onExeption[1] ?
>It works within the ErrorHandler, and it can do the same thing as 
>doTry... doCatch does.

[1]http://camel.apache.org/exception-clause.html

Willem

ext2 wrote:
> Thanks Claus Ibsen:
> 
> If we just consider this example, move policy before doTry could resolve
it; but If we  consider another situation:
>       <doTry>
>               ..some other operation ..
>               <policy ref="...>
>                       transaction operations
>               </policy>
>               <docatch>
>               </docatch>
>       </dotry>
> 
> At this time, I cannot move policy to <doTry/> easily; and also, if
transaction operations  raise exception, the doCatch cannot catch it;
> 
> 
> Claus Ibsen wrote:
>> Move the <policy> before the <doTry>
> 
> 
>> On Thu, Apr 22, 2010 at 9:08 AM, ext2 <x...@tongtech.com> wrote:
>>
>> Hi:
>>
>> The camel's transaction required the transacted-error-handler, but
try-catch
>> required no-error-handler. They will conflict; following is a sample that
>> the try-catch cannot works while using transaction. but I am not sure if
>> this is bug or just a camel's limit?
>>
>> For example, the following route :
>>
>> <doTry>
>>        <policy ref="PROPAGATION_REQUIRED">
>>        <pipeline>
>>     <to uri="ibatis:table.add?statementType=Insert"/>
>>     <bean ref="errorbean" method="raiseError"/>
>>     </pipeline>
>>     </policy>
>> <doCatch>
>> <exception>java.lang.Exception</exception>
>> <bean ref="mybean" method="foo"/>
>> </doCatch>
>>
>> As for normal understanding: the errorbean(just after ibatis) raise
error,
>> so the pipeline will marked as rollback status, but the exception is
still
>> exist, and the catch clause will be execute.And in camel, doCatch cannot
be
>> execute;
>>
>>
>>
> 
> 
> 



Reply via email to