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

Percer le brouillard des rançongiciels
Explorez les méandres d’une investigation de ransomware, avec les experts de Palo Alto Networks et Unit 42 pour faire la lumière dans la nébuleuse des rançongiciels. Plongez au cœur de l’enquête pour comprendre les méthodes, les outils et les tactiques utilisés par les acteurs de la menace. Découvrez comment prévenir les attaques, les contrer et minimiser leur impact. Des enseignements indispensables aux équipes cyber.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les risques liés à l’essor fulgurant de l’IA générative
- Pourquoi est-il temps de repenser la gestion des vulnérabilités ?
- Reporting RSE : un levier d’innovation !
- De la 5G à la 6G : la France se positionne pour dominer les réseaux du futur
- Datanexions, acteur clé de la transformation numérique data-centric
