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