Debugging

So far in this chapter, I’ve tried to build an awareness of those things that can cause common problems when using JDBC with Oracle. Now it’s time to become familiar with good programming practices and with the features available to help debug your JDBC programs. The first of these is handling a thrown SQLException.

Handling SQLExceptions

With JDBC, error conditions are communicated via a thrown SQLException. Errors can originate in the database or in your client application. Either way, they throw a SQLException. Therefore, it’s good programming practice to always block each SQL operation with a try-catch-finally clause. In the catch clause you catch a SQLException. When a SQLException occurs, you have four methods available to you to get further information about the error:

getMessage( )

Returns the error message associated with a SQLException. If the message originates in the database, it will be prefixed by ORA-XXXXX, in which XXXXX represents an Oracle error number. If an error originates from the JDBC driver, the error message returned by getMessage( ) won’t have an ORA-XXXXX prefix.

getErrorCode( )

Returns the five digits of an ORA-XXXXX number from the Oracle error whether the error occurred in your client application or the database.

getSQLState( )

Returns a five-digit SQL state code if the error originated from the database. Otherwise, this method returns null.

printStackTrace( )

Prints the current program stack to standard error.

Of these four methods, getMessage( ...

Get Java Programming with Oracle JDBC now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.