Java 算出';哪个约束';已从SQLException中违反

Java 算出';哪个约束';已从SQLException中违反,java,jdbc,exception-handling,unique-constraint,Java,Jdbc,Exception Handling,Unique Constraint,我的代码可能会遇到许多不同约束的“约束冲突异常”(CVE)。为了向用户显示有意义的消息并采取特定操作,我正在解析getMessage()返回的字符串。它可以工作,但很难看,而且肯定不容易维护 我想知道有没有更好的办法?这一定是一个相当普遍的情况;是否有一种模式或最佳实践我可以遵循 谢谢。AFAIK,既然您对哪个特定约束失败感兴趣,那么无论您做什么都是唯一的出路 我不确定你说的是哪个数据库,但你可以试试SQLException.getErrorCode()和SQLException.getSQLS

我的代码可能会遇到许多不同约束的“约束冲突异常”(CVE)。为了向用户显示有意义的消息并采取特定操作,我正在解析
getMessage()
返回的
字符串。它可以工作,但很难看,而且肯定不容易维护

我想知道有没有更好的办法?这一定是一个相当普遍的情况;是否有一种模式或最佳实践我可以遵循


谢谢。

AFAIK,既然您对哪个特定约束失败感兴趣,那么无论您做什么都是唯一的出路

我不确定你说的是哪个数据库,但你可以试试
SQLException.getErrorCode()
SQLException.getSQLState()
。这些将根据db供应商提供更多信息


例如,在Oracle中,
SQLException.getErrorCode()
只会告诉您违反了一个约束,而不一定是哪一个约束。

我正在使用SQLServer2005,将按照您的建议尝试
getErrorCode()&getSQLState()
。谢谢