【问题标题】:Exception handler does not catch an exception异常处理程序不捕获异常
【发布时间】:2013-04-09 21:30:38
【问题描述】:

我有一个 webflow 级别的异常处理程序

<exception-handler bean="webflowExceptionHandlerBean"/>

我还有两个不同的流程,流程 A 和流程 B。流程 B 是流程 A 的子流程。

流程 A

<flow>
  <on-start>
    <!-- SOME SET -->
  </on-start>
  <view-state id="viewStateA">
    <transition id="goToFlowB" to="flowB"/>
  </view-state>
  <subflow-state id="flowB" subflow="flowB">
  </subflow-state>
</flow>

流程 B

<flow>
  <on-start>
    <!-- SOME SET -->
  </on-start>
  <view-state id="flowB">
    <on-entry>
    <!-- HERE THE EXCEPTION IS THROWN -->
    </on-entry>
    <transition id="goToT1" to="t1"/>
  </view-state>
</flow>

因此,当在 webflowExceptionHandlerBean

未捕获的 Flow B 的 on-entry 中引发异常时

webflowExceptionHandlerBean的配置实现FlowExecutionExceptionHandler

我尝试使用 并且效果很好,但我想在每个流上只使用一个全局异常处理程序。

你知道发生了什么吗? 我错过了什么吗?

【问题讨论】:

    标签: javascript spring exception-handling spring-webflow-2


    【解决方案1】:

    有一个像下面这样的抽象流定义

    <flow xmlns="http://www.springframework.org/schema/webflow"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/webflow
                                http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd" abstract="true">
    <exception-handler bean="webflowExceptionHandlerBean"/>
    </flow>
    

    然后,将抽象流程继承到您的流程 A 和流程 B 中,如下所示

    <flow xmlns="http://www.springframework.org/schema/webflow"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/webflow
                                http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd" parent="abstract-flow">
    

    您应该能够使用自定义异常处理程序全局处理您的异常

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2010-12-11
      • 2011-08-17
      • 2013-01-07
      • 2014-09-02
      相关资源
      最近更新 更多