骡子:抓住异常消息

Loi*_*ros 6 java mule mule-studio mule-el

我在Mule中有一个默认的catch异常,我正在尝试使用Mule表达式访问异常消息:#[exception]

这似乎不起作用,我猜我正在尝试访问错误的变量?我正在尝试使用logger记录它,并运行一个接收异常消息的自定义组件(作为字符串.)

谢谢,

小智 9

在某些情况下,exception.cause可以null建议使用条件来显示消息:

[(exception.cause!=null)?(exception.cause.message):exception]
Run Code Online (Sandbox Code Playgroud)

这将防止空指针异常.


Nir*_*ond 9

获取异常消息(null safe)的最佳方法是:

#[exception.cause.?message or exception.cause]


Cha*_*ana 4

你可以#[exception.causedBy]这样做

   <choice-exception-strategy>
        <catch-exception-strategy when="exception.causedBy(com.company.BusinessException)"> <!-- [1] -->
            <jms:outbound-endpoint queue="dead.letter">
                <jms:transaction action="ALWAYS_JOIN" />
            </jms:outbound-endpoint>
        </catch-exception-strategy>
        <rollback-exception-strategy when="exception.causedBy(com.company.NonBusinessException)"> <!-- [2] -->
            <logger level="ERROR" message="Payload failing: #[payload]"/>
        </rollback-exception-strategy>
    </choice-exception-strategy>
Run Code Online (Sandbox Code Playgroud)

更多详情请点击这里