Forum Liberty Basic France

Débutant » Pas vraiment pour débutants .... Mais ça peut aider ...
Le 08/02/2014 à 22h17

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
Bonsoir à tous,
Personne n'est à l'abri d'une fôte de frappe ...
Je suis tombé sur un drôle d'os ...
Code BBCODE :
    IF CRMNT > DBMNT THEN
        NOTICE "Montant crédit trop grand"
        PRINT #20.CRMNT, CRMNT$
        GOTO [CREDIT2]
    END IF

Ca semble tout simple, sauf que mon [CREDIT2] n'existe pas dasn ce programme ! (coupé-coll- malheureux !)
Jusque là, en testant le programme depuis l'éditeur LB, rien ne se passe. (je ne suis pas passé par cette codition dans mes tests )
Partant de là, je crée une application .exe, .tkn etc ... etc ... Pas le moidre des messages d'erreur à la compile !
Tous va bien ! Mais quand le programme vient lécher la condition, alors là, ça se gâte !
Si la condition est fausse, on tombe sur l'erreur Division by 0 (authentique !)
Et si la condition est vraie, on tombe tantôt sur un Invalid #handle, ou sur le même message Division by 0
!
Rigolo, non ?
Explication ? Quelque chose dans un des piles, et le stack pointer se paume ?
Comme ça, je ne suis pas le seul à avoir des nuits blanches !
Salutations cordiales
Horace
____________________
The Basic and I

Mail Web    
Le 08/02/2014 à 23h01

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 361
Bah corriges ton étiquette :p
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 08/02/2014 à 23h44

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Entre les testeurs qui bâclent le boulot, les débuggeurs qui voient pas les fautes de frappe, et les pc qui ne veulent toujours pas diviser par 0; on a pas le Q sorti des ronces ! :D
____________________
Roro

   
Le 09/02/2014 à 09h20

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
Bonjour,
Merci des conseils, bien entendu, j'ai corrigà immédiatement l'étiquette en question ! Disons que mon étonnement, ce soit unzio que le compilateur n'ait pas vu cette erreur, et deuxio, et conséquement, qui'il ne reporte pas un code d'erreur juste à l'éxecution !
A part ça, pour lire le log d'erreur, il faut bien s'accrocher !
Salutations
H.
Quant à mon Q, je le laisse sur la commode !
____________________
The Basic and I

Mail Web    
Le 09/02/2014 à 09h50

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Le compilateur ne voit que les fautes de syntaxe, les mic-mac de type et les dépassements (quand le remplissage des fûts se fait à l'initialisation).
Et à l'exécution , tant que le prog ne passe pas sur le "rateau", il roule.
Il peut même passer sur un "gros cailloux", continuer de rouler (en quittant la trajectoire), et aller se crasher un peu plus loin; sur une division par 0.
Ou continuer de rouler et sortir des résultats foirés, sans que personne ne s'en aperçoive jamais (si ils sont invérifiables).
____________________
Roro

   
Débutant » Pas vraiment pour débutants .... Mais ça peut aider ...  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie