Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

On error resume next : par quoi le remplacer ?

1 réponse
Avatar
Joelle
Je débute en VB.net et je ne me débrouille pas encore très bien avec la
gestion des exceptions.
Ainsi j'ai testé un code qui utilise ActiveDs.IADSUser pour récupérer les
attributs des Users dans l'Active Directory.
Le problème est que lorsqu'un champ n'est pas initialisé dans le container
user, par ex "Title" ou "Manager" ex :

Dim objUser as ActiveDs.IADSUser
dim strTitle as string
....
For each objUser in objContainer
strTitle = objUser.Title
.....
next objUser
....
si il n'y a rien dans objUser.Title, le code retourne une exception et
s'arrête. Si je mets "On error resume Next", le programme continue et me
ramène tous les users avec leurs attributs, initialisés ou non.

Comme "On error Resume Next" provient de VB6, je me demandais quel était
l'équivalent en VB.Net ou comment régler le problème autrement ?


Merci de votre aide

Joëlle

1 réponse

Avatar
Zazar
Bonjour,

Je débute en VB.net et je ne me débrouille pas encore très bien avec la
gestion des exceptions.
Ainsi j'ai testé un code qui utilise ActiveDs.IADSUser pour récupérer les
attributs des Users dans l'Active Directory.
Le problème est que lorsqu'un champ n'est pas initialisé dans le container
user, par ex "Title" ou "Manager" ex :

Dim objUser as ActiveDs.IADSUser
dim strTitle as string
....
For each objUser in objContainer
strTitle = objUser.Title
.....
next objUser
....
si il n'y a rien dans objUser.Title, le code retourne une exception et
s'arrête. Si je mets "On error resume Next", le programme continue et me
ramène tous les users avec leurs attributs, initialisés ou non.


La méthode correcte ne consiste pas à ignorer les erreurs, mais à les
prévenir ou à les traiter. Faîtes donc un test pour vérifiez si
objUser.Title vaut nothing.


Comme "On error Resume Next" provient de VB6, je me demandais quel était
l'équivalent en VB.Net



Il n'y a pas d'équivalent avec les exceptions, il faudrait que chacune des
lignes de code soit mises dans un bloc try/catch ce qui n'est pas gérable.
Mais ce n'est pas grave, car comme dit plus haut, le "on error resume next"
est à éviter.

--
Zazar