“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 97 — #107
i
i
i
i
i
i
i
i
2.7 Les exceptions
97
L’instruction try
L’instruction sémantique est :
(try s 1 catch x then s 2 end, E)
L’exécution fait les actions suivantes :
– Empiler l’instruction sémantique (catch x then s 2 end, E).
– Empiler (s 1 , E).
L’instruction raise
L’instruction sémantique est :
(raise x end, E)
L’exécution fait les actions suivantes :
– Dépiler les éléments de la pile sémantique à la recherche d’une instruction
catch.
• Si une instruction catch est trouvée, la dépiler.
• Si la pile est vidée et aucune catch n’est trouvée, arrêter l’exécution
avec le message d’erreur « Uncaught exception » (« Exception non
captur´ ee »).
– Soit (catch y then s end, E c ) l’instruction catch qui est trouvée. Empiler alors (s, E c + {{y → E(x)}).
Voici comment le système Mozart traite une exception non capturée. Pour l’exécution
interactive, un message d’erreur est affiché dans la fenêtre de l’émulateur Oz. Pour
une application, l’application termine et un message d’erreur est envoyé sur stderr,
la sortie standard d’erreur du processus. Il est possible de changer ce comportement
vers quelque chose de plus adapté à l’application en utilisant le module Property.
L’instruction catch
L’instruction sémantique est :
(catch x then s end, E)
L’exécution dépile simplement cette instruction. L’instruction catch ne fait rien, tout
comme skip.
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
2.7 Les exceptions
97
L’instruction try
L’instruction sémantique est :
(try s 1 catch x then s 2 end, E)
L’exécution fait les actions suivantes :
– Empiler l’instruction sémantique (catch x then s 2 end, E).
– Empiler (s 1 , E).
L’instruction raise
L’instruction sémantique est :
(raise x end, E)
L’exécution fait les actions suivantes :
– Dépiler les éléments de la pile sémantique à la recherche d’une instruction
catch.
• Si une instruction catch est trouvée, la dépiler.
• Si la pile est vidée et aucune catch n’est trouvée, arrêter l’exécution
avec le message d’erreur « Uncaught exception » (« Exception non
captur´ ee »).
– Soit (catch y then s end, E c ) l’instruction catch qui est trouvée. Empiler alors (s, E c + {{y → E(x)}).
Voici comment le système Mozart traite une exception non capturée. Pour l’exécution
interactive, un message d’erreur est affiché dans la fenêtre de l’émulateur Oz. Pour
une application, l’application termine et un message d’erreur est envoyé sur stderr,
la sortie standard d’erreur du processus. Il est possible de changer ce comportement
vers quelque chose de plus adapté à l’application en utilisant le module Property.
L’instruction catch
L’instruction sémantique est :
(catch x then s end, E)
L’exécution dépile simplement cette instruction. L’instruction catch ne fait rien, tout
comme skip.
© Dunod – La photocopie non autorisée est un délit
