Apache Camel: errorHandler vs onException?
Was ist der Unterschied zwischen:
<camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel"
deadLetterUri="log:dead">
<camel:camelContext errorHandlerRef="deadLetterErrorHandler">
...
</camel:camelContext>
Und:
<onException>
...
</onException>
Laut dieser Artikel, mit Ihnen zusammen eine "starke Kombination". Wie so? Welche Rolle jeder einzelne übernehmen kann, und wie ergänzen Sie sich gegenseitig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
errorHandler
wird verwendet, um mit jeder nicht erfassteException
dass wird geworfen während das routing und die Verarbeitung der Nachricht. UmgekehrtonException
wird verwendet, um den Umgang mit bestimmtenException
Typen, die, wenn Sie geworfen werden. Check-out dieser Artikel sehen, wie Sie mitonException
.onException(Throwable.class)
ich habe im Grunde implementiert dererrorHandler
?Wenn die Aktion, die Sie durchführen müssen, für jede Art von Ausnahme ist anders, verwenden onException. Sie können die Fehlerbehandlung auf einer pro-Ausnahme Grundlage.
onException(xxxException.class).to("activemq:xxxFailed");
onException(yyyException.class).to("activemq:yyyFailed");
Wenn Sie nur eine generische handler, gehen Sie mit dem errorHandler. Für alle Art von Fehlern, die die gleiche Verarbeitung wird durchgeführt werden.