gpt4 book ai didi

java - 如何捕获 JDBC 中的特定异常?

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:28 25 4
gpt4 key购买 nike

如何捕获 JDBC 中的特定异常?示例:主键异常或外键异常。

最佳答案

更具体地处理SQLException 的最佳且独立于DB 的方法是确定可通过SQLException#getSQLState() 获得的SQL 状态代码。 . SQLState 是一个 5 个字符的代码,其中前两个在所有数据库中通用,后三个可能因数据库和/或特定条件而异。这是 spec 的摘录:

  • 02:无数据
  • 07:动态SQL错误
  • 08:连接异常
  • 0A:不支持的功能
  • 21:违反基数
  • 22:数据异常
  • 23:违反完整性约束
  • 24:无效的游标状态
  • 25:交易状态无效
  • 26:无效的SQL语句名
  • 28:授权规范无效
  • 2B:依赖的特权描述符仍然存在
  • 2C:无效的字符集名称
  • 2D:无效交易终止
  • 2E:无效的连接名
  • 33:无效的 SQL 描述符名称
  • 34: 游标名称无效
  • 35:无效条件数
  • 3C:不明确的游标名称
  • 3D:目录名称无效
  • 3F:无效的架构名称

因此,要确定 SQL Exception 是否是由违反约束引起的,您可以在(虚构的)SQLUtil 类中执行以下操作:

public static boolean isConstraintViolation(SQLException e) {
return e.getSQLState().startsWith("23");
}

关于java - 如何捕获 JDBC 中的特定异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1988570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com