Après de multiples recherches j'ai réussi à obtenir le comportement suivant :
Je positionne mon Flag FPE pour qu'une exception FPE soit levée :
J'affecte ensuite un handler à un signal de type FPE
CALL PXFSIGACTION(SIGFPE,jaction,joaction,pxferr)
Les signaux FPE sont bien trappés, mais quand j'arrive dans mon handler de signaux, je suis incapable de savoir quelle erreur FPE a été levée (Division par zéro, Overflow, etc ...).
Je pourrais utiliser plutôt la fonction IEEE_HANDLER qui me permet de créer également un handler pour les exceptions FPE et avec laquelle je peux savoir quelle erreur a été levée mais le problème de cette fonction c'est que le programme se termine à la fin de la fonction handler, sans possibilité de trapper le signal en aval ...
Si quelqu'un a une idée ?
Partager