我的代码可能会遇到各种不同的约束违规异常(CVE)。为了向用户显示有意义的信息并采取特定的操作,我正在解析 getMessage()
返回的字符串。虽然这种方法可行,但它很丑陋,而且肯定不易于维护。
我在想是否有更好的方法?这一定是一个相当常见的情况;是否有模式或最佳实践可以遵循?
谢谢。
我的代码可能会遇到各种不同的约束违规异常(CVE)。为了向用户显示有意义的信息并采取特定的操作,我正在解析 getMessage()
返回的字符串。虽然这种方法可行,但它很丑陋,而且肯定不易于维护。
我在想是否有更好的方法?这一定是一个相当常见的情况;是否有模式或最佳实践可以遵循?
谢谢。
据我所知,由于您对特定约束条件失败感兴趣,无论您正在做什么,这都是唯一的解决方式。
我不确定您在谈论哪个数据库,但您可以尝试... SQLException.getErrorCode()
和 SQLException.getSQLState()
。这些会根据数据库供应商为您提供更多信息。
例如,在Oracle中,SQLException.getErrorCode()
只会告诉您存在违反约束条件的情况,但不一定会告诉您是哪个约束条件。
getErrorCode()&getSQLState()
。谢谢。 - kmansoor