handle(true) = the exception is handled and removed from the exchange + break out routing handled(false) = the exception is not handled, so it will be stored as an exception on the exchange + break out routing continue(true) = handled(true) + continue routing
On Thu, Apr 14, 2011 at 8:48 AM, hyjshanghai <hyjshang...@gmail.com> wrote: > With regard to the "onException" Spring DSL, here are my questions based the > following 5 definitions (Example A-E). > Note that I replaced < and > with ( and ) > > 1. What's the difference between handled(false) and continued(true)? > (Example C v.s. D) > According to my experience, only continued(true) will really continue > routing as if the exception has not happend. > handled(false) will break out routing, just like what handled(true) does. Is > this normal? > > 2. Similar to question 1, what's the difference between handled(true) and > continued(false)? (Example B v.s. E) > Should continued(false) also break out the normal routing on exception, just > like what handled(true) does? > > 3. A famous book on Camel says "OnException doesn’t handle exceptions by > default". > However, Example A also breaks out normal routing on Exception, just like > what Example B does by my experience. > Is my experience conflicting with the Book's assertion that exception is not > handled by default? > > Example A: > (camel:onException) > (camel:exception)java.lang.ArithmeticException(/camel:exception) > (camel:process ref="arithmeticExceptionProcessor" /) > (/camel:onException) > > Example B: > (camel:onException) > (camel:exception)java.lang.ArithmeticException(/camel:exception) > > (camel:handled)(camel:constant)true(/camel:constant)(/camel:handled) > (camel:process ref="arithmeticExceptionProcessor" /) > (/camel:onException) > > Example C: > (camel:onException) > (camel:exception)java.lang.ArithmeticException(/camel:exception) > > (camel:handled)(camel:constant)false(/camel:constant)(/camel:handled) > (camel:process ref="arithmeticExceptionProcessor" /) > (/camel:onException) > > Example D: > (camel:onException) > (camel:exception)java.lang.ArithmeticException(/camel:exception) > > (camel:continued)(camel:constant)true(/camel:constant)(/camel:continued) > (camel:process ref="arithmeticExceptionProcessor" /) > (/camel:onException) > > Example E: > (camel:onException) > (camel:exception)java.lang.ArithmeticException(/camel:exception) > > (camel:continued)(camel:constant)false(/camel:constant)(/camel:continued) > (camel:process ref="arithmeticExceptionProcessor" /) > (/camel:onException) > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/What-s-the-Difference-between-handled-false-and-continued-true-and-more-tp4302302p4302302.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com CamelOne 2011: http://fusesource.com/camelone2011/ Twitter: davsclaus Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/