有什么区别:
<camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel"
deadLetterUri="log:dead">
<camel:camelContext errorHandlerRef="deadLetterErrorHandler">
...
</camel:camelContext>
和
<onException>
...
</onException>
根据this article,两者结合使用是一种“强大的组合”。怎么会这样?他们每个人都扮演什么角色,他们如何相互补充?
答案 0 :(得分:16)
errorHandler
用于处理在路由和处理邮件期间抛出的任何未捕获的Exception
。相反,onException
用于在抛出特定Exception
类型时处理它们。查看this article以了解如何使用onException
。
答案 1 :(得分:1)
如果您需要为每种类型的异常执行的操作不同,请使用onException。它允许您在每个异常的基础上定义错误处理。
onException(xxxException.class).to("activemq:xxxFailed");
onException(yyyException.class).to("activemq:yyyFailed");
如果您只需要一个通用处理程序,请使用errorHandler。对于所有类型的错误,将执行相同的处理。