Dans le premier bloc try, la construction de l’objet a(1) lève une exception de type
erreur_d, en transmettant une expression (erd) de ce type dans laquelle les champs num et
code valent respectivement 999 et 12. Le premier gestionnaire trouvé (catch(erreur er))
convient puisque erreur est un type de base de erreur_d. C’est donc lui qui est exécuté, ce
qui explique que la valeur du champ code ne soit pas affichée, et ceci malgré
l’existence, un peu plus loin, d’un gestionnaire mieux approprié (catch(erreur_d)).
Dans le second bloc try, en revanche, les mêmes gestionnaires ont été disposés dans
l’ordre inverse. L’exception levée par la construction de b est alors traitée par le
gestionnaire approprié et la valeur du champ code est effectivement affichée.
337
Précédent

- 338/398

Suivant