© Éditions Eyrolles
249
chapitre n° 7
Programmation avancée
Si aucune erreur ne se produit, le traitement se termine ou retourne à son appelant, s’il s’agit
d’un sous-programme lancé d’un programme principal. La syntaxe générale d’une exception
est la suivante. Les exceptions doivent être déclarées de préférence après les variables et avant
les curseurs.
DECLARE { CONTINUE | EXIT | UNDO }
HANDLER FOR
{ SQLSTATE [VALUE] ‘valeur_sqlstate’ | nomException | SQLWARNING
| NOT FOUND | SQLEXCEPTION | code_erreur_mysql }
instructions MySQL;
[, { SQLSTATE...} ...]
q
La directive CONTINUE (appelée handler) force à poursuivre l’exécution de programme
lorsqu’il se passe un événement prévu dans la clause FOR.
q
Le handler EXIT fait sortir l’exécution du bloc courant (entre BEGIN et END).
Le handler UNDO n’est pas encore reconnu. À son nom, on se doute de son utilité, à savoir
défaire les instructions SQL qui auront été exécutées (sans avoir été validées par un COMMIT)
avant que l’exception ne se déclenche.
q
SQLSTATE permet de couvrir toutes les erreurs d’un état donné.
q
nomException s’applique à la gestion des exceptions nommées (étudiées plus loin).
q
SQLWARNING permet de couvrir toutes les erreurs d’état SQLSTATE débutant par 01.
q
NOT FOUND permet de couvrir toutes les erreurs d’état SQLSTATE débutant par 02.
Figure 7-4 Principe général des exceptions
BEGIN
...
DECLARE { CONTINUE | EXIT | UNDO }
HANDLER FOR
{ SQLSTATE
v | SQLEXCEPTION
| NOT FOUND
| erreurMySQL
… }
...
BEGIN
...
SELECT ...
INTO ... FROM ... ;
...
...
INSERT .. .
...
END ;
...
END ;
NOT FOUND
EXIT
CONTINUE
CONTINUE
EXIT
SQLEXCEPTION
249
chapitre n° 7
Programmation avancée
Si aucune erreur ne se produit, le traitement se termine ou retourne à son appelant, s’il s’agit
d’un sous-programme lancé d’un programme principal. La syntaxe générale d’une exception
est la suivante. Les exceptions doivent être déclarées de préférence après les variables et avant
les curseurs.
DECLARE { CONTINUE | EXIT | UNDO }
HANDLER FOR
{ SQLSTATE [VALUE] ‘valeur_sqlstate’ | nomException | SQLWARNING
| NOT FOUND | SQLEXCEPTION | code_erreur_mysql }
instructions MySQL;
[, { SQLSTATE...} ...]
q
La directive CONTINUE (appelée handler) force à poursuivre l’exécution de programme
lorsqu’il se passe un événement prévu dans la clause FOR.
q
Le handler EXIT fait sortir l’exécution du bloc courant (entre BEGIN et END).
Le handler UNDO n’est pas encore reconnu. À son nom, on se doute de son utilité, à savoir
défaire les instructions SQL qui auront été exécutées (sans avoir été validées par un COMMIT)
avant que l’exception ne se déclenche.
q
SQLSTATE permet de couvrir toutes les erreurs d’un état donné.
q
nomException s’applique à la gestion des exceptions nommées (étudiées plus loin).
q
SQLWARNING permet de couvrir toutes les erreurs d’état SQLSTATE débutant par 01.
q
NOT FOUND permet de couvrir toutes les erreurs d’état SQLSTATE débutant par 02.
Figure 7-4 Principe général des exceptions
BEGIN
...
DECLARE { CONTINUE | EXIT | UNDO }
HANDLER FOR
{ SQLSTATE
v | SQLEXCEPTION
| NOT FOUND
| erreurMySQL
… }
...
BEGIN
...
SELECT ...
INTO ... FROM ... ;
...
...
INSERT .. .
...
END ;
...
END ;
NOT FOUND
EXIT
CONTINUE
CONTINUE
EXIT
SQLEXCEPTION
