| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.

View
 

Erreurs sur les 68k

Page history last edited by PBworks 11 years, 11 months ago
Erreurs sur les 68k

 

 Auteur  : tama

 

Date de début : Mardi 02 Septembre 2008

Dernière mise à jour : Mardi 02 Septembre 2008

Statut : 35% - En cours de rédaction

 

I Récupérer une erreur dans un programme TI-Basic

 

CITATION : lambda

 

        Récupérer une erreur ? comment ça ?

 

 

         Eh bien, supposons que vous avez fait un programme dont vous êtes tout content (^^), mais que vous ne l'avez pas complètement protégé complètement des erreurs éventuelles (un boulet peut toujours s'amuser à faire n'importe quoi ...)

Vous souhaitez que lorsqu'une erreur arrive, vous ne voyez pas cette affreuse boite de dialogue qui ensuite met fin au programme, mais vous souhaitez quand même avertir l'utilisateur qu'une erreur s'est produite pour qu'il puisse vous avertir ensuite, tout en laissant le programme continuer (presque) normalement ensuite (le presque est dû aux instructions qui ont foirées et qui sont éventuellement utilisées par la suite).

 

 

 

CITATION : lambda

 

        Et comment qu'on fait ça ?

 

 

Dans un programme, pour récupérer une erreur et pouvoir poursuivre votre programme, il faut utiliser le bloc TRY...ELSE...ENDTRY

 

Prenons pour illustrer le code suivant :

 

1

2

3

4

5

6

7

8

9

10

Local colonne


Input "Allumer le pixel 0," , colonne

 

TRY

         PxlOn 0, colonne

ELSE

         Disp "Oops, une erreur s'est ","produite"

         Disp "Le code de l'erreur produite est ",string(errornum)
ENDTRY

 Code TI-Basic 68k

 

 

Ce code a pour but d'essayer d'allumer un pixel de coordonnées (0, colonne), colonne étant demandé sur la ligne 3

Vient ensuite le bloc TRY...ELSE...ENDTRY

Entre le TRY et le ELSE viennent les instructions qui vont être testées, entre le ELSE et le ENDTRY les instructions en cas d'erreur.

 

Dans cet exemple, on essaie (try en anglais ^^) d'allumer le pixel de coordonnées données à la ligne 6

 

Pour rappel, PxlOn admet 2 arguments :

  • ligne qui est la ligne dans laquelle on veut allumer le pixel, 0 étant la ligne la plus en haut de l'écran "utilisateur", pas de l'écran entier (il  y a le menu en haut)
  • colonne est la colonne où on veut allumer le pixel.

Ainsi, PxlOn(32, 108) allumera le pixel de la 33ème ligne et de la 109ème colonne (ça commence à 0 !)

 

 

 

 

 

Si on ne peut pas allumer le pixel (valeur incorrecte, type incorrect...bref, entrée incorrecte) , on va alors dans le bloc ...ELSE...ENDTRY qui contient les instructions en cas d'erreur

On affiche donc en ligne 8 qu'une erreur s'est produite, et en ligne 9 le code de l'erreur produit

 

CITATION : lambda

 

        Ok, mais c'est quoi errornum ? on ne l'a pas initialisé, non ?

 

Exact.

errornum est ce qu'on appelle une variable système.

Il existe 2 sortes de variables, les variables utilisateur, qui sont celles que vous utilisez couramment (les a, math/formule ...) et les variables système qui contiennent des informations utilisées par le système.

 

Parmi ces variables système, on peut citer par exemple, xmax, xmin, ymin, ymax et autres variables pour les fenêtres graphiques, seed1 et seed2 pour générer des nombres aléatoires ...

 

 

 

Mais revenons à nos moutons : la variable errornum

Comme le nom peut le laisser supposer (error => erreur, num => number => nombre), il s'agit d'une variable qui contient le code d'une erreur s'il s'en produit une, sinon elle contient 0.

Vous pouvez d'ailleurs tester sa valeur en rajoutant une ligne :

 

1

2

3

4

5

6

7

8

9

10

11

Local colonne

 

Disp "errornum vaut "&string(errornum)

Input "Allumer le pixel 0," , colonne

 

TRY

         PxlOn 0, colonne

ELSE

         Disp "Oops, une erreur s'est ","produite"

         Disp "Le code de l'erreur produite est ",string(errornum)
ENDTRY

 Code TI-Basic 68k

 

Si vous n'avez pas fait n'importe quoi avec un autre programme avant, vous devriez avoir en sortie

SORTIE

 

        errornum vaut 0

avant d'avoir à entrer la valeur de colonne

 

 

 

Revenons donc sur les lignes 9 et 10

Rien à dire sur la ligne 9, il s'agit d'un simple affichage

Maintenant que j'ai fait mon petit topo sur errornum, vous devriez être capables de comprendre la ligne 10 ^^

 

CITATION : lambda

 

        Euuuuuuuh ... attends 2 secondes, pourquoi string(errornum) ?

 

 

 

Question simple à laquelle je vais répondre en 2 lignes : string() permet de convertir une expression en chaine de caractères, or errornum est un nombre, et la ce qui le précède dans l'affichage est ... une chaine. Je vous laisse en déduire la suite ;)

 

  • Bien, il est temps de tester !

Eh bien, allez-y, il suffit de recopier le code et de le lancer, si vous ne savez pas comment faire, allez lire un tuto sur les bases des bases, puis revenez ^^

Essayez d'entrer une valeur correcte pour colonne (entre 0 et 159 pour TI89, 0 et 239 sinon), regardez ce qui se passe, puis rentrez une valeur incorrecte (1000 par exemple)

Je crois que c'est suffisant pour cette partie. Nous allons maintenant voir à quoi correspondent ces codes d'erreur :)

 

 

II Liste des codes des erreurs 68k et explications

 

Comments (0)

You don't have permission to comment on this page.