处理错误
当 Vertica JDBC 驱动程序遇到错误时,它会引发 SQLException
或其子类之一。所引发的特定子类取决于已发生的错误的类型。大部分 JDBC 方法调用会导致发生多种不同类型的错误,JDBC 驱动程序将引发特定的 SQLException
子类以响应这些错误。客户端应用程序可以根据 JDBC 驱动程序已引发的特定异常选择如何对错误做出响应。
注意
JDBC 4.0 标准中引入了特定的SQLException
子类。如果客户端应用程序在 Java 5 JVM 中运行,它将使用符合 JDBC 3.0 的较旧版本驱动程序,而这些驱动程序缺少前述子类。在这种情况下,所有错误都将引发 SQLException
。
SQLException
子类的层次结构已进行了排列,可帮助客户端应用程序确定采取哪些措施以对错误条件做出响应。例如:
-
当错误原因可能是临时条件(例如,超时错误 (
SQLTimeoutException
) 或连接问题 (SQLTransientConnectionIssue
))时,JDBC 驱动程序将引发SQLTransientException
子类。客户端应用程序可以选择重试操作而不进行任何尝试以纠正错误,因为该错误可能不会再次发生。 -
当客户端需要采取某种措施以便能够重试操作时,JDBC 驱动程序将引发
SQLNonTransientException
子类。例如,执行包含 SQL 语法错误的语句会导致 JDBC 驱动程序引发SQLSyntaxErrorException
(SQLNonTransientException
的子类)。通常,客户端应用程序只需要将这些错误报告回给用户并让用户解决错误。例如,如果用户向应用程序提供的 SQL 语句触发了SQLSyntaxErrorException
,则应用程序会提示用户修复 SQL 错误。
有关由 JDBC 驱动程序引发的 Java 异常的列表,请参阅 SQLState 和 Java 异常类的映射。