如何捕获SqlIntegrityConstraint违例异常

时间:2015-06-17 13:46:28

标签: oracle exception unique-constraint sqlexception ojdbc

我有一个场景,用户提交基金和证券的订单。如果他使用相同的基金提交另一个订单,安全数据库会返回SqlIntegrityVoilationException错误代码ora-00001

但我的问题是这个例外不会被java.sql.sqlintegrityconstraintviolationexception抓住。我能够在org.springframework.dao.DataIntegrityViolationException下捕获此信息,但我无法检索错误代码(检查ora-00001)。

任何人都有任何想法如何捕获该异常并检索错误代码以进行检查,以便我可以放回一个自定义错误消息,例如"您无法提交相同基金和安全组合的重复订单"。

修改

catch (SQLException e) {
      ex = e; inOrder.setActionMessage(ex.getMessage()); 
}
catch (DataIntegrityViolationException e) {
      ex = e; inOrder.setActionMessage(ex.getMessage()); 
}

0 个答案:

没有答案