par Gary Guthrie
Passez en revue
les possibilités de traitement des exceptions en RPG. Et voyez comment les
gestionnaires de conditions et d'annulation de ILE pallient certaines des
limitations du RPG/400Dring . . . dring .
. . .
"Informatique. Francis à l'appareil."
"Salut, Francis. C'est André du Service Financier. Un message d'erreur est apparu sur mon terminal il y a quelques instants, et maintenant plus rien ne fonctionne correctement !"
D'une voix calme, Francis demande, "Quel était ce message ?"
"Quelque chose à propos d'un fichier ayant quelque chose, ou quelque chose de ce genre, je pense" répond André avec confiance.
"Pas de problème, je m'en occupe" répond Francis. Puis elle raccroche le téléphone et murmure "Bien, bien".
Vous avez sûrement déjà entendu çà , n'est-ce pas ? Heure après heure et franc après franc, les ressources de l'informatique s'amenuisent dès lors que les programmeurs consacrent un temps précieux aux réparations, après le crash d'une application. Or, on peut éviter les coûts et les migraines entraînés par les problèmes applicatifs, en plaçant le traitement des exceptions en tête de la liste des considérations en matière de conception d'applications.
Il existe de nombreux types d'exceptions et leurs techniques de traitement diffèrent en fonction de leur type, du langage utilisé, et du l'environnement modèle de programme (OPM et EPM vs ILE). Je classerai donc les exceptions en trois groupes distincts :
-
Exceptions concernant les fichiers. Il s'agit d'erreurs, comme les I/O sur des fichiers non encore ouverts, des types d'enregistrement indéfinis, des erreurs de programmes triggers et des erreurs d'unités.
-
Exceptions concernant les programmes applicatifs. Ce sont des exceptions comme des erreurs d'index de tableaux invalides, les divisions par zéro et les erreurs lors de l'appel de sous-programmes. La liste des erreurs de programmes possibles est énorme.
-
Exceptions associées au système. Il s'agit d'événements comme des défaillances de lignes de communications, des programmes annulés par les utilisateurs et une défaillance du code du système d'exploitation.
Le plus souvent, des techniques de coding appropriées empêchent ces exceptions de provoquer des fins anormales. Les exceptions associées au système sont les plus délicates, parce qu'on les maîtrise parfois fort peu au niveau applicatif. Il est ainsi impossible d'écrire un code suffisamment parfait pour qu'il évite toute erreur du système d'exploitation.
Quant aux langages évolués (HLL), chacun d'entre eux possède ses propres mécanismes de traitement des erreurs. Le CL par exemple, utilise abondamment la commande MONMSG (Monitor Message) pour piéger les exceptions. Les gestionnaires d'exceptions du RPG comportent des indicateurs d'erreur ou l'extension E sur certai