> Tech > Handlers de SPL

Handlers de SPL

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Un handler SPL est un ensemble d'instructions qui s'exécutent quand une condition se manifeste. La figure 3 montre un exemple de déclaration de handler. Chaque handler comporte trois éléments importants :
• Type de handler (Continue, Exit ou Undo)
• Conditions du handler (une condition générale ou une ou plusieurs

Handlers de SPL

conditions spécifiques)
• Actions du handler (le code exécutable dans le handler)

Plusieurs comportements importants
de SPL sont liés aux handlers. Les
handlers ne sont jamais appelés quand une instruction s’exécute avec succès
(c’est-à -dire que SqlState est à  « 000
00 »).
Quand une instruction cause une
condition d’exception, s’il n’existe pas de handler correspondant, la routine
sort immédiatement et renvoie une exception
à  l’appelant de la routine.
Donc, les handlers sont le seul mécanisme
SPL permettant d’intercepter
des exceptions. On ne peut pas détecter
une exception en faisant simplement
suivre une instruction (un
Update, par exemple) d’un test If appliqué
à  SqlState, comme on le ferait
avec un SQL imbriqué dans un programme
HLL.
La situation avec les conditions
warning et not found se situe quelque
part entre l’exécution réussie et les exceptions.
S’il existe un handler correspondant
pour une condition warning
ou not found, il est exécuté. Sinon, la
condition warning ou not found est
ignorée. Si aucun handler n’est exécuté,
vous pouvez tester SqlState immédiatement
après une instruction,
pour déterminer l’état de bonne exécution
de l’instruction. (Mais il est préférable
de copier immédiatement
SqlState dans une variable de travail
puis de tester celle-ci).
Une fois exécuté, le handler réinitialise
toujours SqlState. Si vous voulez
travailler avec le SqlState d’une instruction
après l’exécution d’un handler, le
code de ce dernier doit copier SqlState
dans une variable de travail, comme le
montre l’exemple de la figure 3.
Un handler peut contenir la plupart
des types d’instructions SPL, y
compris les instructions composées
imbriquées. Toutefois, vous ne pouvez
pas utiliser GoTo ou Leave pour sortir
d’un handler. Une instruction composée
à  l’intérieur d’un handler peut ellemême
contenir des handlers. Si un
handler contient du code pouvant
échouer (par exemple, une instruction
Insert pour journaliser des informations
d’erreur dans une table), vous
devez protéger ce code en définissant
le(s) handler(s) imbriqué(s) approprié(
s) dans ce handler.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010