从SQLException中找出“哪个约束”被违反

5

我的代码可能会遇到各种不同的约束违规异常(CVE)。为了向用户显示有意义的信息并采取特定的操作,我正在解析 getMessage() 返回的字符串。虽然这种方法可行,但它很丑陋,而且肯定不易于维护。

我在想是否有更好的方法?这一定是一个相当常见的情况;是否有模式或最佳实践可以遵循?

谢谢。

1个回答

2

据我所知,由于您对特定约束条件失败感兴趣,无论您正在做什么,这都是唯一的解决方式。

我不确定您在谈论哪个数据库,但您可以尝试... SQLException.getErrorCode()SQLException.getSQLState()。这些会根据数据库供应商为您提供更多信息。

例如,在Oracle中,SQLException.getErrorCode() 只会告诉您存在违反约束条件的情况,但不一定会告诉您是哪个约束条件。


我正在使用SQLServer 2005,将尝试使用您建议的getErrorCode()&getSQLState()。谢谢。 - kmansoor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接