当前位置: 首页 > 知识库问答 >
问题:

如何在骡子流中捕获任何异常

戚星腾
2023-03-14

我有一个骡子流,可以抛出异常(无法连接到连接器,组件抛出异常等)。当这种情况发生时,骡子流在异常发生的地方停止。我需要捕获流抛出的任何异常并发送电子邮件通知,指示发生了异常。(尤其是对于像从JMS读取一样异步运行的流)。我应该使用流中的什么元素来捕获任何异常并发送电子邮件?

我试过了:

<default-exception-strategy>
        <smtp:outbound-endpoint host="${email.relay.host}"
                    mimeType="text/html" from="${email.support.from" to="${email.support.to}"
                    cc="${email.support.cc}" bcc="${email.support.bcc}" subject="${email.support.subject}">
            </smtp:outbound-endpoint>
    </default-exception-strategy>

但这根本就没有开始。我还尝试过:

<exception-type-filter expectedType="java.lang.Exception"></exception-type-filter> 

但这似乎只在流抛出异常时才有效(正常的流功能被改变)。

@David Dossot -我添加了以下片段:

添加了以下片段:

<catch-exception-strategy>
            <smtp:outbound-endpoint host="${email.relay.host}"
                            mimeType="text/html" from="${email.support.from" to="${email.support.to}"
                            cc="${email.support.cc}" bcc="${email.support.bcc}" subject="${email.support.subject}">
            </smtp:outbound-endpoint>
    </catch-exception-strategy>

但我在启动mule应用程序时遇到一个错误:

根异常堆栈跟踪:org.xml.sax。SAXParseException:cvc复杂类型.2.4.a:发现以元素“catch exception strategy”开头的无效内容。“{”之一http://www.mulesoft.org/schema/mule/core:抽象消息处理器http://www.mulesoft.org/schema/mule/core:抽象出站终结点http://www.mulesoft.org/schema/mule/core“:响应,”http://www.mulesoft.org/schema/mule/core:抽象异常策略http://www.mulesoft.org/schema/mule/core“:com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHanderWrapper.java:195)位于com.sunorg.apache.exerces.internal.util.ErrrHandlerWhrapper.error(ErrorhandlerWapper.java:131)位于com.sun.org.aaphe.exers.internl.impl.XMLErrorReporter.reportError(XMLErrrorReporter.java:384)3更多(为所有设置调试级别日志记录或“-Dmule.verbose.exceptions=true”)

我用的是骡子3.2.2。你能帮忙吗?

共有2个答案

通和裕
2023-03-14

试试这个。}中缺少。

<catch-exception-strategy>
<smtp:outbound-endpoint host="${email.relay.host}"
    mimeType="text/html" from="${email.support.from}" to="${email.support.to}" cc="${email.support.cc}" bcc="${email.support.bcc}" subject="${email.support.subject}">
</smtp:outbound-endpoint></catch-exception-strategy>
司寇经亘
2023-03-14

在Mule 3.3上,我通常使用< code > catch-exception-strategy 来实现。

在Mule 3.2及更早版本上,default-outtion-

 类似资料:
  • 本文向大家介绍如何在Clojurescript中捕获任何JavaScript异常?,包括了如何在Clojurescript中捕获任何JavaScript异常?的使用技巧和注意事项,需要的朋友参考一下 要在Clojurescript中捕获JavaScript异常,请尝试以下代码片段-

  • 我使用的是python 2.7和tornado 4.5 以下代码不起作用:除块不被触发。我不明白为什么? 相反,我可以捕获;但是我没有我如何调用的上下文。在我的例子中,更有意义的是引发一个较低级别的异常,并且调用者根据输入将其转换为人类可读的错误。 我是否只需要重构它来调用较低级别的gen.Task?那会很烦人:/

  • 问题内容: 发现在Java 1.6(以及从Eclipse)上运行时,吞没了该方法中的异常之后,我试图找到一种捕获这些异常的方法,而不会在我的所有实现中都添加throw / catch 。 该API建议覆盖应对此有所帮助: 导致此future报告一个ExecutionException,并以给定throwable作为其原因,除非已经设置或取消了此Future。计算失败时,run方法在内部调用此方法。

  • 问题内容: 我如何编写一个块来捕获所有异常? 问题答案: 你可以,但你可能不应该: 但是,这也会捕获类似的异常,而你通常不希望那样,对吗?除非你立即重新引发异常,否则请参阅docs中的以下示例:

  • 问题内容: 我有一个Swing应用程序,即使我在/中都包含了所有内容,也没有捕获到异常。 我得到的只是这个堆栈跟踪: 问题答案: 正如另一位发布者所提到的,您的问题是该异常正在另一个线程(事件调度线程)中引发。几个解决方案: 在发生异常的实际代码周围进行尝试/捕获:例如,如果它是对ActionListener处理的按钮单击的响应,则将try / catch放入actionPerformed()方法

  • 问题内容: 我的JSP页面中有一个复选框,它接受整数值: 如果用户将输入的值更改为一个值,例如: 该页面将引发一个。如何在控制器中捕获并显示有意义的消息? 问题答案: 您可以使用JSTL的 c:catch 标签: