TRACER 5 FONCTIONS DEFINIES PAR L'UTILISATEUR, EN MEME TEMPS

Egyde Messages postés 158 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juillet 2007 - 7 mars 2006 à 17:57
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 mars 2007 à 10:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36428-tracer-5-fonctions-definies-par-l-utilisateur-en-meme-temps

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 mars 2007 à 10:48
d'accord avec Steff, si tu peux prévoir les erreurs, ajoutes des tests, ce sera moins lourd a traiter que de gérer les erreurs...
cs_Steff Messages postés 34 Date d'inscription vendredi 9 novembre 2001 Statut Membre Dernière intervention 29 mars 2007
29 mars 2007 à 10:32
Hello,

On error Resume Next marche, mais c'est crado. Je suis brutal, mais je vais expliquer.
Si tu utilise on error resume next et que ta procédure appelle d'autre procédures, le on error va se propager. Tu peux donc planter bien plus loin que la procédure appelante et dans ce cas, le code reprendra directement à la suite de la procédure appelé en oubliant tout ce qui a été fait avant. Je sais pas si c'est clair comme explication.
Si tu connais l'erreur, dans le cas d'un ln(x), ne serait-il pas plus judicieux d'écrire :
if (x > 0) then
y = ln(x)
end if
Le on error resume next est une belle source d'emmerde. Il vaut mieux si tu veux absolument utiliser le on error, le faire en local avec une instruction on local error resumenext. Dans ce cas, la propagation du traitement ne se fera pas dans les sous procédures.

++
Steff
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
1 avril 2006 à 13:31
salut
je crois que je n ai pas besoin d'utiliser le On Error GOTO
car moi je connais l'erreur (c'est que c'est impossible de trouver une valeur d'une fonction en dehors dans son champ de définition -exemple ln(x) pour x<=0) donc j'utilise le On Error Resume Next pour ignorer l'erreur (je pense que c'est logique)
et merci
mitnick2006 Messages postés 6 Date d'inscription dimanche 12 février 2006 Statut Membre Dernière intervention 2 avril 2006
30 mars 2006 à 22:32
bonjour tous le monde
merci amezghal de ce code
mais j ai 1e observation sur tn erreur,il est priferable de mettre
"on erreur goto err" dont err et le nom de la place ou il se derige le vb prceke l instruction de "on erreur resume next" il force le programme de ingorer l erreur et c est pas bien dans les cas ou l erreur peux s influencer sur le bon fonctionnement du programme.
exemple de l utilisation de l instruction
private sub cmd_click()
on erreur goto err
..... 'code
exit sub
err:
msgbox"entrer seulement les nombres",vbokonly+vbexlamation,"Erreur"
end sub
et merci bcp du programme monsieur.
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
10 mars 2006 à 19:04
Je vais p-e paraitre dur mais

1. Ya pas de description -2
2. On error resume next est un truc qui n'aurrait jamais du exister en vb =( -1
3. Noms de fonctions imcompréhensible genre "amezghalabdelilah" -1
4. Tu utilises des noms de variables pas très explicite et tu n'as pas indenter ton code -1
5. mais tu utilise Option Explicit donc +1 point


donc 6/10
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
8 mars 2006 à 20:53
Ce n'est pas parce que çà marche que c'est bien programmé. Loin de là !
Le jour où tu utiliseras un langage qui n'a pas de "On Error Resume Next" (et il y en a beaucoup), tu te sentiras bien embêté ...

De plus, avec "On Error Resume Next", quel que soit le problème rencontré, tu le shuntes. Du coup, çà peut conduire à un crash complet de ton problème, sans que tu saches pourquoi.
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
8 mars 2006 à 12:49
mais ça marche,et si je vouler regler ça avec une autre méthode le code deviendra plus long; si vous trouvez une telle façon veuillez le signaler
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
8 mars 2006 à 10:25
En mettant "On Error Resume Next", tu ne corriges pas ton problème, tu te contentes de le masquer !
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
7 mars 2006 à 20:50
en plus j'avais oublié de mettre
ON ERROR RESUM NEXT
dans cette cas " log(x)"
et dans mon code j'ai |For x=-val(text1.text) to val(text1.text)...
ce qui est impposible car log(x) est définit sur IR*+
je vais régler tout ça
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
7 mars 2006 à 20:16
donnez un exemple pour que je le corrige.merci
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
7 mars 2006 à 18:32
Quand on entre une mauvaise fonction on a un message qui nous prévient mais celui-ci est coriace il tourne en boucle....
Egyde Messages postés 158 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juillet 2007
7 mars 2006 à 17:57
Ah, si le code est important...
Rejoignez-nous