Gestion des erreurs

XI - La gestion des erreurs

Cette partie liste les principales erreurs de programmation. Pour avoir la liste exhaustive des erreurs, consultez le manuel correspondant à votre calculatrice.

Syntaxe Error (erreur de syntaxe)

Syntaxe ErrorComme dirait Pierrotll, « arrêtez de coder avec les pieds ».

Plus sérieusement, c'est l'erreur la plus récurrente. Vérifiez si vous n'avez pas oublié un Then après un If, ou de fermer par un IfEnd, WhileEnd, LpWhile ou Next.

Une autre raison peut que vous ayez oublié de fermer un guillemet en amont dans le programme. Ainsi, la calculatrice croit qu'une grande partie de votre code est du texte.

Le débuggeur en ligne permet de trouver rapidement les erreurs récurrentes.

Math Error (erreur de mathématique)

Math ErrorLe calcul est impossible (division par 0...) ou dépasse la plage de calcul (résultat supérieur à 10100 ou inférieur à -10100). Vérifiez les ensembles de définition de vos calculs (cours de mathématiques, wikipédia, google...).

Go Error ou Erreur Saut

Go error (ou Erreur Saut)Il n'y a pas de Lbl qui correspond au Goto. Ou alors, Prog appelle un programme qui n'existe pas. Dans les deux cas, vérifiez le label ou le nom du programme.

Entre outre, un programme classique ne peut pas appeler un programme base. Le programme base permet des calculs et des conversions en binaire, octal, décimal et héxadécimal. Les fonctions base sont inutilisables dans les programmes classiques et inversement.

Branch Error (erreur de branchement)

Branch ErrorVous avez dépassé les 10 niveaux de programmes. Pour revenir au programme de niveau supérieur, utilisez la fonction Return (ne l'appelez pas avec Prog).

Si vous ne voyez pas de quoi je parle, je vous invite à relire la partie sur Prog.

//Programme de niveau 1 "PROG1"
Prog "PROG2"

//Programme de niveau 2 "PROG2"
Return //Pour revenir au programme de niveau 1

Dim Error (erreur de dimension)

Dim ErrorLa dimension renseignée pour la liste, la matrice ou le vecteur est incorrecte. Elle est inférieure ou égale à 0 ou dépasse la limite de la liste, de la matrice ou du vecteur. Vérifiez les dimensions et corrigez les valeurs.

Memory Error (erreur de mémoire)

Memory ErrorVous avez saturé la mémoire principale de la calculatrice. Allez dans MEMORY puis Mémoire principale. Supprimez les données que vous n'utilisez plus. En général, prévoyez un minimum de 2000 octets pour la bonne exécution des programmes Basic.

Avec les Graph 100(+), cette erreur survient aussi lorsqu'on tente de créer une très grande matrice qui occupe plus de 65 536 octets.


Corriger les résultats inattendus

Fréquemment, le programme ne fonctionne pas comme on s'y attendait. Pourtant, on pensait avoir tout prévu.

Tester les variables et les calculs

Il est important de déterminer où le programme commence à partir en vrille, à quel moment où un calcul ou une variable prend une valeur supposée impossible.

Tout d'abord, avez-vous correctement initialisé vos variables ? Si ce n'est pas le cas, je vous conseille de mettre ce code au démarrage du programme, qui initialisera toutes les variables de A à Z avec la valeur 0.

0->A~Z

Si le problème persiste, déterminez visuellement (dans la tête) une zone potentielle où le problème peut se produire et testez soigneusement chaque calcul et variable par ◢ ou par Locate.

◢ a l'avantage d'être plus facile à mettre en place et permet de connaitre rapidement la valeur d'une variable ou d'un calcul, mais oblige à interrompre régulièrement le programme.

A◢
2A-4◢

Or, en mode texte, si on débuggue un jeu de plate-formes par exemple, cette fonction va provoquer un décalage à l'affichage du niveau. Le debuggage ne serait alors que plus difficile. La deuxième astuce est d'utiliser Locate ou Text selon le mode d'affichage utilisé (texte ou graphique), et d'afficher à l'aide de ces fonctions les valeurs des variables et calculs. Plus long à mettre en place, il facilite néanmoins le travail quand on veut voir en temps réel ce qui se passe. N'hésitez pas à placer une boucle de pause pour prendre le temps d'analyse les valeurs :

Locate 20,1,A
Locate 20,2,2A-4
Do:LpWhile Getkey!=79 //met en pause le jeu tant qu'on n'appuie pas sur [F1], idéal pour prendre le temps de visualiser les valeurs

Maintenant, vous savez comment débugguer vos programmes. Passons à la dernière partie sur l'optimisation :)


<<< Revenir au cours précédent Continuer le cours >>>

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 33 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd