gpt4 book ai didi

java - 如何捕获/处理 Camel 中所有未捕获的异常

转载 作者:行者123 更新时间:2023-12-01 11:38:27 25 4
gpt4 key购买 nike

我目前在 route 使用 doTry/doCatch block ,因此我无法使用全局 onException block 。

但是,如果 Camel 路由中断(由于错误的代码或意外/未经测试的场景),我想执行一些业务逻辑。希望这种情况永远不会发生,但我仍然想处理更坏的情况。

我不能在全局 onException block 中出现 java.lang.Exception,而且,我也不想在每个路由上都添加一个附加捕获。

Camel 在抛出未捕获的异常和中断路由之前是否有特定的方法调用。

我看到以下未捕获异常的日志:

2015-04-20 15:11:35,279 [Camel (fulfillmentOrderProcessor) thread #5 - seda://FulfillmentSedaQueue] WARN  o.a.c.component.aws.sqs.SqsConsumer [, ID-ip-10-180-252-213-54360-1429566855015-0-144]: Exchange failed, so rolling back message status: Exchange[Message: {... }]

java.lang.IllegalArgumentException: Unable to parse string argument null

我查看了UnitOfWork.afterprocess。但这无济于事,因为即使我在 Camel route 处理了它,交换也会有异常。

最佳答案

默认情况下,Camel 会将异常传播回调用者,因此您可以在任何调用 seda://FulfillmentSedaQueue 路由的客户端代码中捕获异常...

否则,服务器端的选项(如您所提到的)是使用全局 onException clause或特定路线 doTry/doCatch声明

关于java - 如何捕获/处理 Camel 中所有未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com