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

État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- DSI en assurance : gardien du temple ou moteur de la transformation ?
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
- Comment le Quarter Plan permet d’aligner IT et Métiers pour délivrer
