De meeste, om niet te zeggen alle, JDBC-methoden smijten een SQLException wanneer er een fout optreed. Deze Exception bezit heel wat gegevens die ons meer kan vertellen over wat eer specifiek is fout gegaan met onze aanvraag. Hiervoor voorziet deze Exception een aantal methoden.
getSQLState(). Deze methode geeft de ANSI SQL-status waarde terug. Meer informatie over deze codes vindt je via deze link.
getErrorCode(). Deze methode geeft de specifieke foutcode terug voor de database. Deze kan dan via een google search worden uitgespit.
getMessage(). Deze methode geeft de specifieke foutmelding en omschrijving van de database terug.
Het is ook mogelijk dat meerdere fouten optreden. Om dan overheen de verschillende fouteen te kunnen wandelen, kan je gebruik maken van de methode getNextException().
De klasse SQLWarning is een afgeleide van de SQLException. Dit object dient om waarschuwingen te geven die wijzen op gevaren. Dit is dus geen Exception die gesmeten wordt, maar eerder een verwittiging dat iets zou kunnen voor problemen zorgen.
We kunnen de verschillende waarschuwingen opvragen aan de hand van de methode getWarnings() op de interfaces Connection, Statement en ResultSet.
De vele SQLExceptions in deze module zorgen soms voor een kluwen aan Error Handling. Hierdoor kan het aangewezen zijn om een eigen Exception te ontwikkelen die overerft van RuntimeException, en daar telkens het SQLException aan mee te geven. Op deze manier verlies je wel telkens de kostbare informatie die dat object bijhoudt. Wat je wel kan doen is een eigen wrapper schrijven voor de SQLException die ook een RuntimeException is, en die de belangrijkste methoden van de SQLException ook bevat. Op deze manier zijn heel wat van de try – catch blokken overbodig.