O'Reilly logo

Java Programming with Oracle JDBC by Donald Bales

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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( ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required