16

有什么区别:

<camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel" 
        deadLetterUri="log:dead">

<camel:camelContext errorHandlerRef="deadLetterErrorHandler">
    ...
</camel:camelContext>

和:

<onException>
    ...
</onException>

根据这篇文章,将它们结合使用是一种“强大的组合”。怎么会这样?他们各自承担什么角色,如何相互补充?

4

2 回答 2

22

errorHandler用于处理Exception在消息路由和处理过程中抛出的任何未捕获的内容。相反,onException用于Exception在抛出特定类型时处理它们。查看这篇文章以了解如何使用onException.

于 2013-06-27T15:32:04.760 回答
3

如果您需要为每种类型的异常执行的操作不同,请使用 onException。它允许您基于每个异常定义错误处理。

onException(xxxException.class).to("activemq:xxxFailed"); onException(yyyException.class).to("activemq:yyyFailed");

如果您只需要一个通用处理程序,请使用 errorHandler。对于所有类型的错误,将执行相同的处理。

于 2013-06-28T08:30:38.187 回答