SQLException is a checked exception in JDBC that occurs when a database access or SQL operation fails. It can occur while establishing a connection, executing SQL statements, retrieving results, or managing transactions. JDBC provides different subclasses of SQLException to represent specific types of database errors. Understanding these exceptions helps developers identify the cause of a database problem and handle it appropriately.
Common Types of SQLException
| Exception | Description |
|---|---|
SQLSyntaxErrorException |
Occurs when an SQL statement contains invalid syntax or refers to a non-existing database object such as a table or column. |
SQLIntegrityConstraintViolationException |
Occurs when a database integrity constraint is violated, such as inserting a duplicate primary key or violating a foreign-key constraint. |
SQLDataException |
Occurs when there is a problem with the data, such as an invalid data conversion or value outside the allowed range. |
SQLInvalidAuthorizationSpecException |
Occurs when the supplied database username or authentication information is invalid. |
SQLNonTransientConnectionException |
Occurs when a connection problem is unlikely to be resolved by simply retrying the operation. |
SQLTransientConnectionException |
Occurs when a temporary connection problem happens and retrying the operation may succeed. |
SQLTimeoutException |
Occurs when a database operation takes longer than the configured timeout period. |
SQLTransactionRollbackException |
Occurs when the current transaction is rolled back, often because of transaction conflicts or deadlocks. |
SQLFeatureNotSupportedException |
Occurs when the JDBC driver or database does not support a requested feature. |
SQLRecoverableException |
Indicates an error where the application may be able to recover by performing some corrective action, such as reconnecting. |
SQLNonTransientException |
Indicates an error that is unlikely to succeed if the same operation is immediately retried. |
SQLTransientException |
Indicates a temporary error where retrying the same operation may succeed. |
