【发布时间】:2019-09-25 20:00:48
【问题描述】:
我有选择异常策略,我有多个捕获异常策略,我根据错误应用条件。
错误一:
org.mule.api.MessagingException:列“department_id”不能为空 (java.sql.SQLIntegrityConstraintViolationException)。
错误2:
org.mule.api.MessagingException: org.mule.module.db.internal.domain.connection.ConnectionCreationException: 无法获取 URL jdbc:mysql://localhost:3306/mulesoft 的连接:用户'root1212 的访问被拒绝'@'localhost' (使用密码: YES) (java.sql.SQLException) (org.mule.module.db.internal.processor.DbConnectionException)。
如何使用 catch 异常策略中的表达式区分这两种错误?
第一次捕获 - 执行时间:
[exception.causeMatches("org.mule.api.MessagingException: 列'department_id'不能为空*")]
第二次捕获 - 执行时间:
[exception.causeMatches("org.mule.api.MessagingException: org.mule.module.db.internal.domain.connection.ConnectionCreationException*")]
通过使用这个不能触发捕获异常的策略。
[exception.causeMatches("org.mule.api.MessagingException*")]
这是有效的,但对于获取相同起始字符串的错误。如何区分两者?
【问题讨论】:
标签: mule mule-studio anypoint-studio mule-esb