apache camel 中的异常处理

问题描述 投票:0回答:0

我需要在我的骆驼路线上发送通知。有4种情况可以触发:

  1. 路线成功完成
  2. 文件丢失
  3. 第一次验证失败
  4. 第二次验证失败

它们都会向 kafka 发送类似的有效载荷(要构建它,我需要当前的 exchangeBody 和 2 个额外的参数,每种情况都会有所不同。String reason 和 String subject)。

我计划案例 2-4 有单独的处理器,我在那里进行检查,如果它返回 false,我抛出自定义异常,我在其中传递这 2 个字段。然后我在我的路线中的 onException() 方法中捕获它,在那里我获得必要的字段和 exchangeBody,构建并发送事件。对于案例 1,我有单独的处理器来构建和发送消息。

我在想,也许我应该将它们设置为交换属性,而不是在异常情况下传递参数?

或者构建消息,并将其设置到正文中?

或者在抛出异常之前构建并发送事件?

或者也许从异常开始工作是不好的做法,我应该将一些标志传递给骆驼?

java spring apache-camel
© www.soinside.com 2019 - 2024. All rights reserved.