Partie III
Langages et outils
322
© Éditions Eyrolles
Traitement des exceptions
Les exceptions qui ne sont pas traitées dans les sous-programmes appelés, ou celles que les
sous-programmes ou déclencheurs peuvent retourner, doivent être prises en compte au niveau
du code Java (dans un bloc try… catch...). Le bloc d’exceptions permet de programmer des
traitements en fonction des codes d’erreur renvoyés par la base Oracle. Plusieurs blocs
d’exceptions peuvent être imbriqués dans un programme JDBC.
Afin de gérer les erreurs renvoyées par le SGBD, JDBC propose la classe SQLException
qui hérite de la classe Exception. Chaque objet (automatiquement créé dès la première
erreur) de cette classe dispose des méthodes suivantes :
Tableau 8-43 Points de validation
Code Java
Commentaires
try { …
cx.setAutoCommit(false);
String ordreSQL =
"INSERT INTO Avion VALUES (?, ?, ?, ?)";
PreparedStatement étatPréparé =
cx.prepareStatement(ordreSQL);
Désactivation de l’autocommit.
Création d’un état appelable.
Création du point de validation P1.
étatPréparé.setString(1, "F-NEW2");
…
if (! étatPréparé.execute() )
System.out.println("F-NEW2 inséré");
Passage de paramètres et première
insertion.
Création du point de validation P2.
étatPréparé.setString(1, "F-NEW3");
…
if (! étatPréparé.execute() )
System.out.println("F-NEW3 inséré");
Passage de paramètres et deuxième
insertion.
Annulation de la deuxième partie.
cx.commit();
Validation de la première partie.
cx.close();
Fermeture de la connexion.
} catch(SQLException ex) { … }
Gestion des erreurs.
Web
Savepoint p1 = cx.setSavepoint("P1");
Savepoint p2 = cx.setSavepoint("P2");
cx.rollback(p2);
Tableau 8-44 Méthodes de la classe SQLException
Méthode
Description
String getMessage()
Message décrivant l’erreur.
String getSQLState()
Code erreur SQL Standard (XOPEN ou SQL99).
int getErrorCode()
Code erreur SQL de la base.
SQLException getNextException() Chaînage à l’exception suivante (si une erreur renvoie plusieurs messages).
Précédent

- 344/418

Suivant