LES BRANCHEMENTS ET LA GESTION DES ERREURS
Sauts et subroutines
Pas de surprise ici, les commandes GOTO, GOSUB, ON...GOTO et ON...GOSUB sont bien présentes. Une particularité intéressante cependant ; les numéros de lignes peuvent être contenus dans des variables. Ceci permet d’améliorer la lisibilité du code et de le rendre plus évolutif.
Dans l’exemple suivant, la sous-routine d’effacement de l’écran est placée à la ligne 10000, et cette valeur est mémorisée dans une variable CLS. L’appel à la sous-routine se fait par GOSUB CLS.
10 CLS=10000 100 GOSUB CLS 110 PRINT "DEBUT DE L'AVENTURE" 150 END 9999 REM --- EFFACE ECRAN --- 10000 PRINT CHR$(125) 10010 RETURN
Si par la suite vous déplacez cette sous-routine à la ligne 20000, les modifications nécessaires se limiteront à la variable CLS. L’impact sur le code est donc mieux maîtrisé.
Gestion des erreurs
Il est possible de traiter les exceptions grâce à la commande TRAP. En cas d’erreur, l’exécution du programme est déroutée vers la ligne spécifiée après TRAP.
10 TRAP 10000 : REM En cas d'erreur, saute à la ligne 10000 ... ... ... 10000 REM Traitement des erreurs 10010 ERR = PEEK(195) : REM numéro d'erreur 10020 ERL = PEEK(187)*256+ PEEK(186) : REM ligne de l'erreur ...
Le numéro d’erreur est récupéré par PEEK(195), tandis que le numéro de ligne où s’est produite l’erreur est obtenu par PEEK(187)*256+ PEEK(186). Il est ensuite possible de procéder au traitement spécifique de l’erreur.
TRAP reste valide jusqu’à ce qu’une erreur apparaisse. Il faudra donc penser à redéclarer une instruction TRAP avant de reprendre le cours normal du programme (si ceci est nécessaire).
Enfin, spécifier un numéro de ligne supérieur à 32767 après TRAP permet de désactiver la commande.

