【问题标题】:Mule - Error HandlingMule - 错误处理
【发布时间】:2026-02-14 17:20:11
【问题描述】:

在 Mule 中,我使用“复杂”流引用的捕获异常策略。 我在异常策略中放了一个 jdbc 组件,以在出现错误时更新表记录 如何访问异常堆栈跟踪以将其记录在此表上? 我在异常策略开始时检查了有效负载,它是org.apache.commons.httpclient.methods.PostMethod 类型,实际上我在 http 调用期间收到了错误。

【问题讨论】:

    标签: mule mule-studio


    【解决方案1】:

    在异常策略中异常在 Payload 中不可用。它在 Message 对象的 exceptionPayload 变量中可用。

    使用

    异常异常 = (Exception)message.getExceptionPayload().getException();

    这给出了 ExceptionPaylaod 对象,它的 getException() 方法提供了异常对象。

    要获取堆栈跟踪,请使用以下内容。

    StackTraceElement[] ste = exception.getCause().getStackTrace();
    

    从那里您可以根据需要继续。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,这很有帮助。我收到一条 Mule 异常消息,其中不包含我在控制台中看到的 java 堆栈跟踪(Root Exception stack trace:java.net.UnknownHostException)。有没有办法得到它?
    • 此外,在 MEL 中,当前异常绑定在 exception 变量下。
    • 用获取 StackTrace 的解决方案更新了答案。
    • 非常感谢你们,我在一个 groovy 脚本中使用了异常变量,并使用了 exception.getCause().getStackTrace() 来获取 stackTrace。