[VB6] Gérer les erreurs globalement

Gérer les erreurs globalement [VB6] - VB/VBA/VBS - Programmation

Marsh Posté le 30-04-2003 à 14:43:58    

Y a t il un moyen de gerer globalement les erreurs ?
 
Je m explique : je veut que ou que soit et quelque soit l erreur dans mon application (plusieurs modules et formulaires ains que modules classes) cela appel une fonction que j ai définit.
 
Merci d avance pour votre aide

Reply

Marsh Posté le 30-04-2003 à 14:43:58   

Reply

Marsh Posté le 30-04-2003 à 15:49:27    

dragonspyro93 a écrit :

Y a t il un moyen de gerer globalement les erreurs ?
 
Je m explique : je veut que ou que soit et quelque soit l erreur dans mon application (plusieurs modules et formulaires ains que modules classes) cela appel une fonction que j ai définit.
 
Merci d avance pour votre aide


 
tu as toujours la solution de specifier un OnError goto Erreur
et
Erreur:
        appel de la fonction que tu as défini
 
et ceci dans chaque procedures et fonctions....

Reply

Marsh Posté le 30-04-2003 à 18:58:29    

T'as aussi un code qui existent, mais je ne le connais pas; qui te permet de récupèrer tous les codes d'erreur de toutes les pages. Tu tapes le code une fois dans une procédure et tu n'en parles plus, sa évite de le taper sur chacune de tes fonctions ou de tes procédures...
 
tu le trouveras sur www.vbfrance.com

Reply

Marsh Posté le 30-04-2003 à 19:13:15    

ça dépend, si tu as un programme linéaire avec un début et une fin, on peut, mais dès que l'interface graphique intervient, on peut plus.
 
Dans 99% des cas, la réponse est donc simple: non.
 
La raison est idiote et c'est la faute à Microsoft: le pointeur d'exécution peut être "perdu".  C'est à dire qu'il y a un moment dans le code où il n'y a plus rien à exécuter.  Scénario classique, tu affiches la fenêtre principale de ton application et elle attend une interactiond de la part de l'utilisateur.  Pendant le process d'affichage, il arrive un moment où il n'y a plus rien à exécuter car l'application attend une réaction de l'utilisateur (ou éventuellement d'un composant comme le timer).  Au moment où un évènement se déclenchera, le pointeur d'exécution se retrouvera sur la fonction gérant l'évènement, si elle est implémentée dans le code.
 
Donc la solution, la seule, c'est de foutre une ligne du style:
 

Code :
  1. On Error Goto ErrHandler


 
1) au début de ton programme s'il s'agit d'un Sub Main;
2) au début de chaque fonction répondant à un évènement.
 
En Delphi/C++ Builder (je pense que c'est le cas pour n'importe quel IDE du marché, sauf VB), une gestion d'erreur basique est implémentée au début du programme, et puis c'est terminé.  Basiquement pas besoin de plus.  C'est à mon sens un des plus gros problèmes de VB hélas [:spamafote]
 
Et encore, tu n'es pas à l'abri d'une GPF pouvant être générée par le système, là où d'autres langages te permettront de l'intercepter et de la gérer (on parle d'exception, concept quasi inexistant en VB).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed