我有一个要求,我想用Mule解决。我的流程设计如下:
如果每个私有流中都有异常,我想使用Catch Exception Strategy在相应的私有流本身处理它们。
我有这个设计来区分问题,所以每个流程都要承担一个责任。
假设在任何一个私有流中都存在IOException,SQLException或any之类的异常,如何重新抛出自定义异常,例如,org.mycompany.CustomException包括根本原因。所以 main-flow 必须只处理org.mycompany.CustomException并构建相关的异常响应。
比如说,如果 private-flow1 抛出由IOException引起的org.mycompany.CustomException,那么实际的异常响应将是:
{" exceptionMessage" :外部服务不可用," exceptionCode" :101}
并且,如果 private-flow2 抛出由SQLException引起的org.mycompany.CustomException,那么实际的异常响应将是
{" exceptionMessage" :数据库不可用," exceptionCode" :102}
答案 0 :(得分:1)
每个私有流都有自己的异常策略,你可以使用流中的Groovy组件抛出异常。
以下是如何操作的链接: - How do I force an exception in mule
用于自定义异常创建java-class,它将扩展DefaultMessagingExceptionStrategy
<强>更新: - 强> 使用自定义异常策略的示例: - Why is Mule exception strategy so chatty?