我正在尝试在骆驼中引发带有自定义错误消息的自定义异常。我可以通过将值设置为一个已定义的bean来做到这一点,如下所示:



<CamelContext>
  <route>
    <from uri="timer:myTimer"/>
    <bean ref="myException" method="setErrorCode(errorCode)"/>
    <bean ref="myException" method="setErrorMessage(errorMessage)"/>
    <throwException ref="myException"/>
  </route>
</CamelContext>


这种方法很好用。但是这种方法的问题是,只有MyException的一个实例,当有多个并发使用者时,它将导致一种竞争状况。

由于这个问题,我想每次创建一个新的expetion实例。不幸的是,我看不到在骆驼路线内创建异​​常实例,为其设置值然后抛出的任何方法。

我已经读过,从骆驼2.17开始,还有一个附加属性message可以设置错误消息。对我来说,有一些约束迫使我坚持使用骆驼2.15。

那么,在骆驼中创建带有错误代码和错误消息的自定义异常的正确方法是什么?

最佳答案

只需调用创建并引发新异常的bean方法

public void blowUp(...) {
   throw new MyException(...);
}

07-25 22:54
查看更多