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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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.