The classes in this package make JDBC easier to use and reduce the likelihood of common errors. In particular, they:
  • Simplify error handling, avoiding the need for try/catch/final blocks in application code.
  • Present exceptions to application code in a generic hierarchy of unchecked exceptions, enabling applications to catch data access exceptions without being dependent on JDBC, and to ignore fatal exceptions there is no value in catching.
  • Allow the implementation of error handling to be modified to target different RDBMSes without introducing proprietary dependencies into application code.

This package and related packages are discussed in Chapter 9 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).


BadSqlGrammarException Exception thrown when SQL specified is invalid. 
CannotGetJdbcConnectionException Fatal exception thrown when we can't connect to an RDBMS using JDBC. 
IncorrectResultSetColumnCountException Data access exception thrown when a result set did not have the correct column count, for example when expecting a single column but getting 0 or more than 1 columns. 
InvalidResultSetAccessException Exception thrown when a ResultSet has been accessed in an invalid fashion. 
JdbcUpdateAffectedIncorrectNumberOfRowsException Exception thrown when a JDBC update affects an unexpected number of rows. 
LobRetrievalFailureException Exception to be thrown when a LOB could not be retrieved. 
SQLWarningException Exception thrown when we're not ignoring java.sql.SQLWarning SQLWarnings. 
UncategorizedSQLException Exception thrown when we can't classify a SQLException into one of our generic data access exceptions.