Probleme avec On error GoTo ... [Résolu]

Signaler
Messages postés
112
Date d'inscription
samedi 16 octobre 2004
Statut
Membre
Dernière intervention
31 juillet 2006
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour, je commence en VB6 (Je fais plus du VB.NET) Mais le je dois absolument faire un petit programme en VB6...

Mon probleme est que je dois vérifier plusieur port séries, s'il peuvent communiquer... JE dois donc gerer les erreurs... Cependant en VB.net c'est facile avc le Try ... Catch..... Mais en VB6 j'ai un probleme avec le On error GoTo ... je vous explique ce que je veux faire :

For cpt = 1 to 15 Step 1
Port = cpt

On Error GoTo badPort
TESTER LE PORT 'C'est ici qu'il a une erreur si le port existe pas
List1.AddItem ("Port " & cpt)

badPort :
'JE VOUDRAIS CONTINUER LA BOUCLE
Next

Voici a peu pres mon code, je ne sais pas si c'Est comprenable.... MAis en gros, je veux tester la connection, si le port existe je l'ajoute a la list, s'Il n'existe pas, je continue a tester les port... Mon probleme est que lorsque je continue dans la boucle, on dirait que la 2e fois qu'il capte une erreur, il ne fait pas le GoTo.... J'ai essayer plusieur facon et rien ne marche a tous les coups sa plante lorsqu'il capte une erreur pour la 2e fois... J'en déduit que c'est le fonctionnement du On error GoTo, mais il doit bien avoir une facon de contourné sa...

P.S.: JE ne peux pas faire on error Resume Next parce que oui il ne plantera plus, mais il ajoute a la liste l'item... Si possible un peu le meme principe mais Resume 2 lignes plus loin, sa serait correcte..

En t-k je suis sur que c'est assez simple a contourné mais je ne vois pas !!

Vive le Try catch

Merci d'avance!!!!

1 réponse

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
Pour relancer le programme à la ligne DeTonChoix, il suffit de faire un
Resume DeTonChoix
Il recommencera après ce label (DeTonChoix: <-- avec un : derrière) mais gardera en mémoire qu'en cas d'erreur, il ira bien en badPort
+ Evite de mettre un On Error Goto à l'intérieur d'une boucle

Ce qui donne :
On Error GoTo badPort
For cpt = 1 to 15 Step 1
Port = cpt
TESTER LE PORT 'C'est ici qu'il a une erreur si le port existe pas
List1.AddItem ("Port " & cpt)
DeTonChoix:
Next

badPort :
'JE VOUDRAIS CONTINUER LA BOUCLE
Resume DeTonChoix

Si tu utilises "On Error Resume Next", il y a une astuce.
Il suffit de tester la valeur de l'erreur juste derrière l'instruction qui est sensée créer une erreur :
On Error Resume Next
Debug.Print 1/0
If Err.Number = 0 Then
MsgBox "Pas d'erreur"
Else
MsgBox Err.Description
End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci