直到成功的失败表达式,检查多种类型的异常

时间:2013-12-10 21:41:10

标签: mule

在Mule中,我在HTTP端点周围成功使用,以捕获连接异常/超时。我捕获了3个不同的Java异常:

  • java.net.ConnectException
  • java.net.SocketTimeoutException
  • java.net.SocketException异常

我想将这些3的捕获物放入我failureExpression块中的until-successful,但是当我尝试做类似

的操作时
  • #[exception-type:XYZ || exception-type:ZYX]
  • #[exception-type:XYZ] || #[exception-type:ZYX]

我收到错误,无法解析这些错误。有什么方法可以指定failureExpression来检查多种异常类型吗?

2 个答案:

答案 0 :(得分:3)

我能够用这个达到我想要的目的:

failureExpression="#[exception != null && (exception.causedBy(java.net.ConnectException) || exception.causedBy(java.net.SocketTimeoutException) || exception.causedBy(java.net.SocketException))]"

我的问题是失败表达式中的exception可能是null,所以我不得不执行空检查。

答案 1 :(得分:1)

这是不正确的MEL语法。它应该是#[exception is Type1 || exception is Typ2]

请参阅: