如何在MULE中处理未检查/运行时异常。?

如何在MULE中处理未检查/运行时异常。?,mule,custom-exceptions,Mule,Custom Exceptions,有人知道如何在MULE中处理未检查/运行时异常吗 我的意思是,在我的java代码中,出于某种原因,我正在“抛出一个异常”,我希望Mule检测它并将其路由到适当的流,在那里我可以记录或打印该异常 那么,为了实现这一点,我应该在Mule配置文件的“流”中放置什么呢 我的Java代码: public Object xyz (Map payload) throws Exception { if (payload.isEmpty()) { throw new Exception (

有人知道如何在MULE中处理未检查/运行时异常吗

我的意思是,在我的java代码中,出于某种原因,我正在“抛出一个异常”,我希望Mule检测它并将其路由到适当的流,在那里我可以记录或打印该异常

那么,为了实现这一点,我应该在Mule配置文件的“流”中放置什么呢

我的Java代码:

public Object xyz (Map payload) throws Exception {
    if (payload.isEmpty()) {
        throw new Exception ("New Exception") ;
    }
}
我的Mule配置文件:

<flow name="APIAuthenticate">

    <http:inbound-endpoint address="http://localhost:1212/jcore/authorize" transformer-refs="HttpParams" responseTransformer-refs="JavaObjectToJson" contentType="application/json" encoding="UTF-8">
        <not-filter>
            <wildcard-filter pattern="/favicon.ico"/>
        </not-filter>
    </http:inbound-endpoint>

    <component class="main.java.com.abc.XYZ"/>

</flow>


任何帮助都将不胜感激

在流中配置默认异常策略应该允许您捕获异常(甚至是运行时异常)并处理它们


阅读更多信息。

好的。我做了一些尝试,我发现了这一点

  • 当抛出异常时,需要一个异常策略,如默认异常策略自定义异常策略,将流路由到某个类,该类将处理它并执行所需操作

  • 但是当我们返回一个异常(如下所示)时,我们可以使用Mule的异常有效负载过滤器choice属性来处理它

    public Object xyz (Map payload) throws Exception {
        if (payload.isEmpty()) {
            return new Exception ("New Exception") ;
        }
    }
    
如果我错了,请纠正我


另外,如果这个问题还有其他答案,请耐心地回答。

我知道“默认异常策略”会处理错误。但我总是在客户端抛出一个500服务器错误(点击该URL的那个)。我想向客户展示一些整洁的例外情况。以字符串或某种哈希映射的形式。现在告诉我,我该怎么办?你是说你的默认异常策略处理抛出的异常,但仍然会将500返回给客户端?是的。我认为“默认异常策略”的作用是,它捕获错误并将其路由到其他流,我们可以“记录该错误”或“将其输出到某个文件或控制台”。但是对于客户端,它总是显示“服务器错误”。。!!好的,但如果异常处理程序返回另一条消息(如错误消息),该怎么办?流将被中断,不会生成日志,但客户端将显示通常的“服务器错误”消息。