| Problème avec 'on_error_goto'. | |
|
|
Auteur | Message |
---|
Pedro
Nombre de messages : 1548 Date d'inscription : 19/01/2014
| Sujet: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 15:08 | |
| Bonjour. Voici encore un estrait du code de mon programme, où les erreurs ne sont pas détectées par 'on_error_goto'. Toutes les variables étant déclarées en début de programme. Sauf z99%, car il s'agit d'une erreur d'écriture. De même, l'oubli d'une parenthèse à la din de la ligne x%=... n'est pas détectée. Par contre, si je désactive 'on_error_goto', les deux erreurs sont bien détectées !! - Code:
-
operateur$="+" z99%=instr(c$,"+") if zz99%=0 zz99%=instr(c$,"-") operateur$="-" end_if if zz99%=0 zz99%=instr(c$,"*") operateur$="*" end_if if zz99%=0 zz99%=instr(c$,"/") operateur$="/" end_if x%=val(left$(c$,zz99%-1) | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 16:33 | |
| @Pédro, Ton code est incomplet, on n'a pas ON_ERROR_GOTO, ni le label sur lequel il dirige le programme. Les erreurs ne sont pas signalées, c'est normal car c'est à toi de programmer ce que que le programme doit faire en cas d'erreur. Il faut que tu ais un sous_programme "ON_ERROR_GOTO erreur" qui traite les erreurs en utilisant les commandes ERROR_LINE, ERROR_NUMBER, ERROR_TYPE$ Et là tu verras que les erreurs sont traitées. Si ton sous programme "ON_ERROR_GOTO erreur" est terminate, on peut dire que ON_ERROR_GOTO ne sert à rien (dans ce cas précis)
A+ | |
|
| |
Pedro
Nombre de messages : 1548 Date d'inscription : 19/01/2014
| Sujet: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 16:41 | |
| Bonjour.
J'ai bien dit plus haut qu'il s'agissait d'une portion de mon code, qui comporte à ce jour plus de 31.400 lignes.
Tout ce que tu écris est bien prévu. | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 19:17 | |
| Bon, j'ai fait un petit bout de programme pour mettre en défaut ON_ERROR_GOTO avec les 2 erreurs que tu décries et je n'y suit pas parvenu, çà marche normalement.
Mais j'ai un comportement bizarre, je cherche pourquoi avant de publier.
A+
PS: n'oublie pas que le programme cesse de fonctionner à la première erreur, donc il ne signalera pas la seconde. | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 20:30 | |
| Bon, je livre le code d'essai sur lequel j'avais un doute. - Code:
-
label erreur label start,start2 dim a$ : a$="1" dim nb_erreur%,limite_error% : limite_error%=2 ' dim c% error_french on_error_goto erreur gosub start END rem ============================================================================ start: message "BONJOUR" if a$="F" then terminate c%=val(a$) : nb_erreur%=nb_erreur%+1 : ' vu que c% n'est pas déclarée if nb_erreur%=c% then message "nb_erreur%=valeur de a$" : caption 0,a$ start2: nb_erreur%=nb_erreur%+1 :' vu que c% n'est TOUJOURS pas déclarée if c%=nb_erreur% then message "c%=nb_erreur%" : ' erreur détectée 2 fois (Normal, vu le traitement au label erreur) message "A+" return ' ------------------------------------------------------------------------------ erreur: message "Erreur détectée: N°"+str$(ERROR_NUMBER)+" "+ERROR_TYPE$+" à la Ligne "+str$(ERROR_LINE)+chr$(13)+chr$(13)+"Cliquez encore pour sortir" if nb_erreur%>limite_error% then terminate gosub start2 return Quoi dire, je ne vois pas de problème. Le seul point qui pose problème, serait que si à la ligne 25 je change gosub start2 par gosub start le programme boucle (Goto/Return) et donc n'annonce jamais la deuxième erreur. Mais ce fonctionnement me parait normal... Désolé Pédro, je ne peux pas t'aider plus. A+ | |
|
| |
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Problème avec 'on_error_goto'. Dim 28 Sep 2014 - 20:48 | |
| J'ai tout de même une réflexion concernant ON_ERROR_GOTO, A mon avis, cette fonction ne doit pas être confondue entre les erreurs de codage et la détection d'erreur, prévues, à l'exécution du programme. Je veux dire par là, que cette fonction est plus adaptée pour dire au programme ce qu'il doit faire en cas d'erreur (car cette erreur est prévue par le programmeur). Mais cette fonction, à mon avis, n'est pas adaptée (prévue) pour les erreurs de codage. Donc pendant le codage, il faut désactiver "ON_ERROR_GOTO" pour permettre à Panoramic_Editor de faire son travail de détection d'erreur, et ensuite réactiver. Je ne suis pas certain d'être très clair, il faudrait que je trouve un exemple valide. JL35 doit savoir de quoi je parle, on en a déjà parlé. Une histoire d'erreur, volontaire ou prévue.... Mais je n'arrive pas à me souvenir... Stop JL35, je t'entend dire "C'est qui le vieux..." A+ | |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème avec 'on_error_goto'. | |
| |
|
| |
| Problème avec 'on_error_goto'. | |
|