Identifier une erreur de VB6

Signaler
Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
-
Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
-
Bonjour,
J'envoie des fichiers via http comme ceci
    With CreateObject("Microsoft.XMLHTTP")
        .Open "POST", "https://www.xxxxxx.php, False
        .setRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY
        .send pvToByteArray(sPostData)

Le script xxxxxx.php récupère bien le fichier et le charge sur le serveur, ça fonctionne très bien.
Par contre j'ai voulu voir ce qui se passait en cas de coupure Internet, j'ai froidement déconnecté mon PC du routeur : On Error Goto est activé avec Err.Number = 0x800C0005 et Err.Source = msxml3.dll.
J'utilise On Error Goto pour intercepter des erreurs de programmation, par exemple division par zéro, auquel cas le programme envoie un rapport d'erreur puis s'arrête.
Ici ce n'est pas une erreur du logiciel mais de l'utilisateur, d'où ma question : comment faire la différence ?
J'ai vu que les erreurs Visual Basic vont de 0 à 65535 : est-ce le bon critère ?

2 réponses

Messages postés
2398
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 avril 2021
130
Bonjour
Le code d'erreur 0x800C0005 n'est ni un code d'erreur VB6 ni une erreur de l'utilisateur . C'est un code d'erreur retourné par le système d'exploitation . La coupure Internet que tu as simulé aurait très bien pu être dû à une panne sur le réseau de ton FAI et là l'utilisateur que tu es n'y est pour rien . C'est le système d'exploitation qui transmet le code d'erreur à VB6 pour qu'il soit traité par VB 6 .
Les erreurs Visual Basic (de 0 à 65535) sont des erreurs propres à Visual Basic 6 ( erreurs de programmation comme tu dis ) .
Maintenant je ne vois pas l'utilité de différencier les 2 catégories d'erreur . .
Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
2
Dans ce cas ci l'erreur 0x800C0005 est une erreur de l'utilisateur retourné par le système d'exploitation.
L'utilité de distinguer les erreurs VB des autres est que les erreurs VB sont dues à une erreur de programmation dont je dois être mis au courant pour pouvoir la corriger.
Pour les autres, je ne peux rien faire, un message à l'utilisateur suffit.

Ma question est :
Err.Number <0 ou > 65535 est-il le bon critère pour savoir qu'il s'agit d'une erreur de VB6 ?
Sinon quel critère faut-il utiliser ?