Apache Camel: errorHandler vs onException?
Quelle est la différence entre:
<camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel"
deadLetterUri="log:dead">
<camel:camelContext errorHandlerRef="deadLetterErrorHandler">
...
</camel:camelContext>
Et:
<onException>
...
</onException>
Selon cet article, utiliser les deux en parallèle est une "combinaison puissante". Comment alors? Quels sont les rôles que chaque individu assume, et comment ils se complètent les uns les autres?
OriginalL'auteur | 2013-06-27
Vous devez vous connecter pour publier un commentaire.
La
errorHandler
est utilisée pour gérer les uncaughtException
qui est lancée pendant le traitement et à l'acheminement d'un message. À l'inverse,onException
est utilisé pour traiter spécifiquesException
types quand ils sont lancés. Découvrez cet article pour voir comment utiliseronException
.onException(Throwable.class)
j'ai essentiellement mis en œuvre leerrorHandler
?OriginalL'auteur Keith
Si l'action que vous devez effectuer pour chaque type d'exception est différent, utilisez onException. Il permet de définir erreur de manipulation sur une base d'exception.
onException(xxxException.class).to("activemq:xxxFailed");
onException(yyyException.class).to("activemq:yyyFailed");
Si vous avez juste besoin d'un générique de gestionnaire, aller avec errorHandler. Pour tous les types d'erreurs, le même traitement est effectué.
OriginalL'auteur SMS Krishnan