The subclass of SQLException thrown in situations where a
previously failed operation might be able to succeed if the application performs
some recovery steps and retries the entire transaction or in the case of a
distributed transaction, the transaction branch.

The subclass of SQLException is thrown in situations where a
previoulsy failed operation might be able to succeed when the operation is
retried without any intervention by application-level functionality.

An exception thrown as a DataTruncation exception
(on writes) or reported as a
DataTruncation warning (on reads)
when a data values is unexpectedly truncated for reasons other than its having
execeeded MaxFieldSize.

The subclass of SQLException for the SQLState class
value '08', or under vendor-specified conditions.

An exception that provides information on a database access
error or other errors.

Each SQLException provides several kinds of information:

a string describing the error. This is used as the Java Exception
message, available via the method getMesasge.

a "SQLstate" string, which follows either the XOPEN SQLstate conventions
or the SQL:2003 conventions.
The values of the SQLState string are described in the appropriate spec.
The DatabaseMetaData method getSQLStateType
can be used to discover whether the driver returns the XOPEN type or
the SQL:2003 type.

an integer error code that is specific to each vendor. Normally this will
be the actual error code returned by the underlying database.

a chain to a next Exception. This can be used to provide additional
error information.