cs_M51
Messages postés63Date d'inscriptiondimanche 20 novembre 2005StatutMembreDernière intervention10 août 2007
-
18 juil. 2006 à 12:59
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 2019
-
20 juil. 2006 à 08:15
Bonjour,
Je souhaite implémenter une gestion d'erreur dans mon programme. Mon programme étant utilisé par d'autres personnes, je souhaiterais mettre un mouchard qui sauvegarde les erreurs rencontrés dans un fichier txt.
Voici un petit bout de code qui génére une erreur, appel une étiquette qui sauvera des infos dans un fichier txt (procédure Erreur non présentée).
Private Sub Programme-Principale()
Dim data As String
On Error GoTo fin
Err.Clear
Err.Raise 6
Exit Sub
fin:
data = Me.Name & " Erreur: " & Err.Number & " description: " & Err.Description
Call Erreur(data)
Resume Next
End Sub
Question:
Comment récupérer le nom de la procédure, module actuellement en cours (afin de localiser la zone ou se situe le problème (ici Programme-principale) ? Récupérer la pile des procédures en cours avant l'erreur ?
Il va falloir ajouter un "On Error GoTo fin" puis l'étiquette fin: ... dans toutes les procédures ou je souhaite surveiller les erreurs, non ?
Avez vous d'autres idées ?
cs_M51
Messages postés63Date d'inscriptiondimanche 20 novembre 2005StatutMembreDernière intervention10 août 2007 19 juil. 2006 à 16:31
Merci (avec un peu de retard car j'ai mis un peu de temps à tout analyser)
Darksidiou: Je ne connaissais pas MZtools, après quelques tests il me semble très utile dans la programmation et j'ai pu ajouter des gestions d'erreur facilement.
Bouv: En fait le code principale de gestion d'erreur correspond à ce que je pensais faire mais heureusement qu'il existe des softs pour implémenter du code tout seul. Je n'ai pas réussi à faire marcher la version de windows (j'ai bien récupérer le code, mais il a fallu le retoucher pour être exploitable partiellement), ce n'est pas grave j'ai l'essentiel et j'étudie cela avec intérêt.
J'ai fourni avec un logiciel permettant de mettre à jour ton projet d'un simple clic. Penses quand même à faire une sauvegarde avant
Avec cela, dans chaques feuilles, modules, controls utilisateur, classe, il écrira un code de gestion d'erreur.
Cela te permettra de savoir pour chaque erreur :
- Le type d'erreur
- Le nom du module
- Le nom de la procédure ou de la fonction
- Et même la ligne où s'est produite l'erreur.
Le tout stocké dans un fichier texte.
PS : La feuille de gestion des erreurs n'est pas vraiment "jolie", mais tu pourra l'adapter facilement à ton gout.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 19 juil. 2006 à 16:39
Oueps, MZTools est effectivement pas mal.
Mais sinon, dis moi ce que tu n'as pas réussi à faire fonctionner mon code.
As tu vu qu'il y avais un projet qui peut implémenter le code de gestion d'erreur automatiquement dans tes sources ?
Bonne prog ++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_M51
Messages postés63Date d'inscriptiondimanche 20 novembre 2005StatutMembreDernière intervention10 août 2007 19 juil. 2006 à 17:43
J'ai vu le code pour implémenter automatiquement. Pas de problème
C'est plus le résultat, cela rajoute un module modWindowsVersion que j'ai complété avec le code suivant ton lien. Mais à première vue il faut le retoucher un peu (du genre mettre certaines données en publique, ..) bref j'ai pas réussi à avoir facilement la version de windows.
Mais cela n'a pas d'importance, ce qui m'intéressait c'est le principe et je l'ai. Donc merci pour ton code, je vais juste tirer des idées et l'implémenter avec MZTools, car un peu plus pratique en live ;)
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 20 juil. 2006 à 08:15
Ok, j'ai compris, j'avais un peu oublié cette source, mais il est vrai que j'aurai pu remplacer le module qui récupère la version de Windows par un code perso.
Enfin, si tu as eu ta réponse, c'est ce qui compte.