Book Image

JDBC 4.0 and Oracle JDeveloper for J2EE Development

Book Image

JDBC 4.0 and Oracle JDeveloper for J2EE Development

Overview of this book

Table of Contents (20 chapters)
JDBC 4.0 and Oracle JDeveloper for J2EE Development
Credits
About the Author
About the Reviewer
Preface

JDBC Exceptions


SQLException is the main Exception that is generated in a JDBC application. The detail of an SQL exception can be obtained from an SQLException object using the SQLException methods, some of which are discussed in following table:

Method

Description

getMessage()

Returns a textual description of the error.

getSQLState()

Returns a SQLState for the SQLException.

getErrorCode()

Returns the implementation-specific error code for the SQLException object.

getCause()

Returns the cause of the SQLException or null, if the cause is not specified or not known.

getNextException()

Returns an exception chained to the SQLException. All the chained exceptions can be retrieved by invoking the getNextException() method recursively. Returns null, if no chained exception occurs.

getMessage()

Returns a textual description of the error.

When an SQLException occurs, it is likely that one or more SQLExceptions chained to it, have also occurred. The chained exceptions can be retrieved by invoking the getNextException() method recursively, until the method returns null. The cause of an SQLException can be retrieved using the getCause() method. The chained causes can be also be retrieved by invoking the getCause() method recursively, until the value, null, is returned.

If SQLException is generated output the exception message using the getMessage() method, output the exception causes using the getCause() method recursively, and retrieve exceptions chained to the exception using the getNextException() method recursively:

catch(SQLException e)
{
while(e != null)
{
System.out.println("SQLException Message:" + e.getMessage());
Throwable t = e.getCause();
while(t != null)
{
System.out.println("SQLException Cause:" + t);
t = t.getCause();
}
e = e.getNextException();
}
}

Some of the subclasses in the SQLException class are listed in following table:

SQLException

Description

javax.sql.rowset.RowSetWarning

Database warning on a RowSet object.

javax.sql.rowset.serial.SerialException

Indicates an error in the serialization and de-serialization of SQL types such as: BLOB, CLOB, STRUCT, ARRAY.

Java.sql.SQLWarning

Database access warning.

Java.sql.DataTruncation

Indicates data truncation.

Java.sql.BatchUpdateException

Represents an error in a batch update operation.

JDBC 4.0 has added support for categorization of SQLExceptions and enhanced support for chained SQLExceptions, which we will discuss in a later section.