TRACER 5 FONCTIONS DEFINIES PAR L'UTILISATEUR, EN MEME TEMPS
Egyde
Messages postés158Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention16 juillet 2007
-
7 mars 2006 à 17:57
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és34Date d'inscriptionvendredi 9 novembre 2001StatutMembreDernière intervention29 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és385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 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és6Date d'inscriptiondimanche 12 février 2006StatutMembreDerniè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és592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDerniè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és4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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és385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 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és4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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és385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 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és385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 7 mars 2006 à 20:16
donnez un exemple pour que je le corrige.merci
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 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és158Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention16 juillet 2007 7 mars 2006 à 17:57
29 mars 2007 à 10:48
29 mars 2007 à 10:32
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
1 avril 2006 à 13:31
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
30 mars 2006 à 22:32
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.
10 mars 2006 à 19:04
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
8 mars 2006 à 20:53
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.
8 mars 2006 à 12:49
8 mars 2006 à 10:25
7 mars 2006 à 20:50
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
7 mars 2006 à 20:16
7 mars 2006 à 18:32
7 mars 2006 à 17:57