Rexx - Gestion des erreurs

Rexx a la capacité de travailler également sur la gestion des erreurs comme dans d'autres langages de programmation.

Voici quelques-unes des différentes conditions d'erreur observées dans Rexx.

  • ERROR - Ceci est même déclenché chaque fois qu'une commande envoyée au système d'exploitation entraîne une erreur.

  • FAILURE - Ceci est même déclenché chaque fois qu'une commande envoyée au système d'exploitation entraîne un échec.

  • HALT- Ceci est normalement déclenché chaque fois qu'une opération dépend d'une autre opération. Un exemple est si une opération d'E / S est interrompue pour une raison quelconque.

  • NOVALUE - Cet événement est déclenché lorsqu'aucune valeur n'a été affectée à une variable.

  • NOTREADY - Ceci est déclenché par tout périphérique d'E / S qui n'est prêt à accepter aucune opération.

  • SYNTAX - Cet événement est déclenché s'il y a une erreur de syntaxe dans le code.

  • LOSTDIGITS - Cet événement est déclenché lorsqu'une opération arithmétique entraîne une perte de chiffres pendant l'opération.

Erreurs de piégeage

Les erreurs sont piégées à l'aide de la commande de signal. Jetons un coup d'œil à la syntaxe et à un exemple de ceci.

Syntaxe

signal on [Errorcondition]

Où,

  • Errorcondition - C'est la condition d'erreur donnée ci-dessus.

Exemple

Jetons un coup d'œil à un exemple à ce sujet.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
signal off error 
signal off failure
signal off syntax 
signal off novalue 
exit 0 
error: failure: syntax: novalue: 
say 'An error has occured'

Dans l'exemple ci-dessus, nous activons d'abord les signaux d'erreur. Nous ajoutons ensuite une instruction qui entraînera une erreur. Nous avons alors l'étiquette de trappe d'erreur pour afficher un message d'erreur personnalisé.

La sortie du programme ci-dessus sera comme indiqué ci-dessous.

An error has occurred.

Un exemple de codes d'erreur est présenté dans le programme suivant.

/* Main program */ 
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
exit 0 
error: failure: syntax: novalue: 

say 'An error has occured' 
say rc 
say signal

La sortie du programme ci-dessus sera comme indiqué ci-dessous.

An error has occured 
40 
6