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.