Handling errors
When the Vertica JDBC driver encounters an error, it throws a SQLException or one of its subclasses. The specific subclass it throws depends on the type of error that has occurred. Most of the JDBC method calls can result in several different types of errors, in response to which the JDBC driver throws a specific SQLException subclass. Your client application can choose how to react to the error based on the specific exception that the JDBC driver threw.
Note
The specificSQLException subclasses were introduced in the JDBC 4.0 standard.
The hierarchy of SQLException subclasses is arranged to help your client application determine what actions it can take in response to an error condition. For example:
-
The JDBC driver throws
SQLTransientExceptionsubclasses when the cause of the error may be a temporary condition, such as a timeout error (SQLTimeoutException) or a connection issue (SQLTransientConnectionIssue). Your client application can choose to retry the operation without making any sort of attempt to remedy the error, since it may not reoccur. -
The JDBC driver throws
SQLNonTransientExceptionsubclasses when the client needs to take some action before it could retry the operation. For example, executing a statement with a SQL syntax error results in the JDBC driver throwing the aSQLSyntaxErrorException(a subclass ofSQLNonTransientException). Often, your client application just has to report these errors back to the user and have him or her resolve them. For example, if the user supplied your application with a SQL statement that triggered aSQLSyntaxErrorException, it could prompt the user to fix the SQL error.
SeeSQLState mapping to Java exception classes for a list Java exceptions thrown by the JDBC driver.