CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/1.2.07 - Gestion des erreursCoding Classeurs Weka

4/0 - Langages du CPC

4/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 :

  1. NEXT attendu
  2. Erreur de syntaxe
  3. RETURN attendu
  4. Pas assez de données pour les READ correspondants
  5. Valeur ou argument incorrect
  6. Débordement dans un calcul (valeur réelle > 1.7 E 38)
  7. Dépassement de la capacité mémoire
  8. Numéro de ligne inexistant
  9. Indice de tableau hors limites
  10. Redimensionnement d'un tableau
  11. Division par 0
  12. Commande invalide en mode direct
  13. Affectation d'une chaîne à une variable numérique ou inverse
  14. L'espace réservé aux chaînes n'est pas suffisant
  15. Chaîne trop longue
  16. Expression trop compliquée
  17. CONT impossible (une erreur s'est produite ou END rencontré)
  18. Fonction inconnue
  19. La commande RESUME manque
  20. La commande RESUME n'est pas attendue
  21. Commande directe trouvée pendant le chargement d'un programme
  22. Signe d'opération absent
  23. Ligne trop longue
  24. Fin de fichier (EOF) rencontrée
  25. Erreur dans le type du fichier
  26. NEXT manquant
  27. Fichier déjà ouvert
  28. Commande inconnue
  29. WEND manquant
  30. WEND inattendu

    sur CPC 664 et 6128 :

     

  31. Fichier non ouvert
  32. 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 END

Pour ê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 2000

1000 '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 10

Vous 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.

Page précédente : 4/1.2.06 - Sous-programmes et branchements

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 086 millisecondes et consultée 371 fois

L'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.