4/0 - Langages du CPC4/1 - Locomotive BASIC : Définitions et rappels de base 4/1.2 Version 1.0 sur CPC 464 : Mots clés et leur utilisation VII. Gestion des erreurs | ERR et ERL Variables positionnées par le système lorsqu'une erreur se produit dans l'exécution d'un programme ou en mode direct. « ERR » donne le numéro d'erreur et, le cas échéant, « ERL » donne le numéro de ligne où s'est produite l'erreur. Les codes d'erreur sont les suivants : - NEXT attendu
- Erreur de syntaxe
- RETURN attendu
- Pas assez de données pour les READ correspondants
- Valeur ou argument incorrect
- Débordement dans un calcul (valeur réelle > 1.7 E 38)
- Dépassement de la capacité mémoire
- Numéro de ligne inexistant
- Indice de tableau hors limites
- Redimensionnement d'un tableau
- Division par 0
- Commande invalide en mode direct
- Affectation d'une chaîne à une variable numérique ou inverse
- L'espace réservé aux chaînes n'est pas suffisant
- Chaîne trop longue
- Expression trop compliquée
- CONT impossible (une erreur s'est produite ou END rencontré)
- Fonction inconnue
- La commande RESUME manque
- La commande RESUME n'est pas attendue
- Commande directe trouvée pendant le chargement d'un programme
- Signe d'opération absent
- Ligne trop longue
- Fin de fichier (EOF) rencontrée
- Erreur dans le type du fichier
- NEXT manquant
- Fichier déjà ouvert
- Commande inconnue
- WEND manquant
- WEND inattendu
sur CPC 664 et 6128 : - Fichier non ouvert
- Lecture/écriture interrompue
Exemple : L'utilitaire qui suit facilitera la mise au point de vos programmes en indiquant en clair le type d'erreur rencontrée. 10000 ON ERROR GOTO 20000 10010 DIM E$(30) 'Tableau des erreurs 10020 FOR I = 1 TO 30 10030 READ E$(l) 'Lecture des libelles des erreurs 10040 NEXT I 10050 DATA Next attendu. Erreur de syntaxe, Return attendu, Pas assez de donnees 10060 DATA Valeur ou argument incorrect, Débordement dans un calcul 10070 DATA Dépassement de la capacité memoire, Numéro de ligne inexistant 10080 DATA Indice de tableau hors limites, Redimensionnement de tableau 10090 DATA Division par zéro, Commande invalide en mode direct 10100 DATA Affectation d'une chaîne a une variable numerique ou inverse 10110 DATA L'espace reserve aux chaînes débordé, Chaîne trop longue 10120 DATA Chaîne trop compliquée, CONT impossible, Fonction inconnue 10130 DATA Commande RESUME absente, Commande RESUME inattendue 10140 DATA Commande directe trouvee sur le chargement d'un programme 10150 DATA Signe d'opération absent, Ligne trop longue, Fin de fichier rencontree 10160 DATA Erreur dans le type de fichier, NEXT manquant, Fichier deja ouvert 10170 DATA Commande inconnue, WEND manquant, WEND inattendu 10180 RETURN 20000 PRINT E$(ERR) ; "ligne” ; ERL 20010 ENDPour être activé, cet utilitaire devra être appelé sur la première ligne du programme à tester par « GOSUB 10000 » et il faudra prendre garde qu'aucun tableau E$ n'existe dans le programme que vous mettez au point.Remarque : Sur CPC 664 et 6128, modifiez les lignes suivantes : 10010 DIM E$(32) 10020 FOR I=1 TO 32: READ E$(I):NEXT I 10200 DATA Fichier non ouvert, Lecture/ecriture interrompue | | | | ERROR< Nombre entier> Simule une erreur en affectant à une action un numéro d'erreur compris entre 1 et 255. Si le numéro d'erreur est compris entre 1 et 32, le message d'erreur sera le même que pour l'erreur BASIC de même numéro. Si le numéro d'erreur est compris entre 33 et 255, l'utilisateur pourra définir ses propres messages d'erreur. | | Utilisation | Définition de nouveaux messages d'erreur :10 GOSUB 1010 20 ON ERROR GOTO 20001000 'Définition des nouvelles erreurs de No> =33 1010 DIM E$(N) 'Nombre d'erreurs definies 1020 FOR I = 1 TO N 1030 READ E$(I) 1040 NEXT I 1050 DATA Libelle des nouvelles erreurs 2000 'Traitement des erreurs | | | | ON ERROR GOTO Définit la ligne qui sera activée dès qu'une erreur est détectée. Remarques : a) Cette commande est souvent placée en début de programme ou du moins sur la ligne à partir de laquelle une erreur peut se produire. b) L'ordre « ON ERROR GOTO 0 » supprime le déroutement du programme en cas d'erreur. | | Utilisation | Voir les commandes « ERR », « ERL » et « ERROR ». | | | | RESUME [< N° ligne >] Redonne le contrôle au programme ayant déclenché l'erreur après l'exécution d'une routine d'erreur. Si aucun numéro de ligne n'est indiqué, l'exécution du programme reprend à la ligne qui suit celle où une erreur a été détectée. Si une ligne est indiquée, l'exécution du programme reprend à cette ligne. | | Utilisation | Vous considérez que l'erreur est grave et qu'il faut reprendre l'exécu- tion du programme à la première ligne : 10 ON ERROR GOTO 1000 20 'Programme 1000 'Traitement de l'erreur 1010 RESUME 10Vous considérez que l'erreur n'est pas grave, qu'elle doit seulement provoquer l'affichage d'un message d'erreur, et être suivie de la réactivation de la ligne ayant provoqué l'erreur :10 ON ERROR GOTO 1000 20 'Programme 1000 'Traitement de l'erreur 1010 RESUME | | | | RESUME NEXT Reprend l'exécution d'un programme (après le déroutement et l'exécution d'un programme de gestion d'erreur) juste après l'instruction ayant provoqué l'erreur, donc, en ne réexécutant pas l'ordre ayant provoqué l'erreur. |
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 627 millisecondes et consultée 1060 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|