Gestion d'erreur

Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 - 29 juil. 2004 à 10:43
nasro0tman Messages postés 7 Date d'inscription samedi 7 octobre 2006 Statut Membre Dernière intervention 21 décembre 2010 - 25 avril 2008 à 13:56
Bonjour,
je suis en train de faire un programme en VB.
Ke voudrais avoir des renseignemetns concerant la gestion d'erreur sous VB.

J'ai déjà vu plusieurs sources vb qui avient quelque chose du style OnErrer Resume Next.
Ceci avec d'autres lignes.

Quelqu'un peut il m'expliquer tout ça, et en gros je les mets où ?
dans les timer, le form load, ailleurs ?

Est ce important de les mettres ?
Si je ne les mets pas, ça fais quoi de + ou de - ?

Merci d'avance

9 réponses

DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
29 juil. 2004 à 11:13
Salut
"On error resume next" ce met au début d'un sub (n'importe quel objet: bouton, timer, label ....) ou d'une fonction, si tu la met et qu'une erreur ce produit, le programme passera a l'instruction suivante, la ligne suivante quoi ;)

Sinon tu peut utilisé:

private sub Command1_Click()
"On error goto etiquette"
.... 'ton code

exit sub
etiquette:
msgbox "erreur!"
end sub

En gros, comprend que si une erreur ce produit, le programme sort du sub et va à "etiquette"

CIaOo
AigleNoir ?-)
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
29 juil. 2004 à 11:41
A noter aussi l'existance de "On Error Goto 0" qui supprime toute gestion d'erreur (annule les effets d'un On Error Goto Etiquette ou On Error Resume Next en gros) et la possiblité d'utiliser "Resume Next" après une etiquette de gestion d'erreur

Scematiquement ca donne ca :

Private Sub MaSub()
... Portion de code à priori fiable
On Error Goto ErrHdlr
... Portion de code risquant de causer une erreur
On Error Goto 0
... Portion de code à priori
Exit Sub

ErrHdlr:
... Code corrigeant l'erreur . Utilise des tests sur Err.Number pour savoir quelle erreur est survenu si tu as plusieurs err possibles
Resume Next     ' Reprend l'execution à la ligne suivant celle qui à généré l'err
End Sub


Christophe R.
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
29 juil. 2004 à 11:59
L'instruction "On Error" se met n'importe où dans ton code dès l'instant où tu veux faire de la gestion d'erreur.

On Error Resume : relance l'instruction qui a généré l'erreur
On Error Resume Next : lance l'instruction qui suit celle qui a généré l'erreur
On Error Goto UneEtiquetteValide : dévie le cours du programme sur l'instruction qui suit l'étiquette UneEtiquetteValide

Par défaut tes fonctions contiennent une gestion d'erreur générale. Par exemple mon modèle de fonction
Sub ExempleGestionErreur()
' en cas d'erreur dans la procéduren, on débranche le traitement pour se positionner sur l'étiquette errExempleGestionErreur
On Error Goto errExempleGestionErreur

' Tes déclarations locales
Dim ...

' Ton code
...

' Une gestion spécifique pour un lot d'instruction : on saute l'instruction en erreur
On Error Resume Next

' Tes instructions avec la gestion d'erreur spécifique
...

' On rebranche la gestion d'erreur générale
On Error Goto errExempleGestionErreur

' D'autres instructions
...

' Fin de la procédure
finExempleGestionErreur:
' Quitte la procédure

Exit Sub

' Espace dédié à la gestion des erreurs
errExempleGestionErreur:
' On peut traiter différement en fonction de l'erreur
If Err.Number = x Then
' Dans ce cas on gomme l'erreur
Resume Next
ElseIf Err.Number = y Then
' Dans ce cas on recommence l'instruction
Resume
Else
' On quitte la procédure
Resume errExempleGestionErreur
End If

End Sub
0
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
29 juil. 2004 à 14:00
Merci pour vos réponses, maintenant je vais réfléchir si je vais intégrer la gestion d'erreur dans mon programme

Est ce que c'est vraiment important de le mettre ?

merci

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
29 juil. 2004 à 14:12
Je dirais que pour une application un tant soit peu sérieuse, c'est vital !!! Imagine une appli ou quand tu l'ouvres, plutot que d'avoir un message d'erreur te disant par exemple que le fichier de configuration est manquant et que tu dois réinstaller ce fichier, tu es un message du style "Erreur 53 ! L'applciation va s'arrêter". Tu préfère quel msg d'erreur ? Pour que ton appli fournisse le 1er msg, il faut que tu gères les erreurs éventuelles !!

Christophe R.
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
29 juil. 2004 à 14:51
Je rejoins le point de vue de Christophe (il est bien ce monsieur ;p ) et je rajouterai que même pour des programmes de base j'insère une gestion d'erreur avec en minimum de traitement l'affichage de l'erreur, le module et la fonction impactée.

Je parle là de petits programmes qui ne sont pas à destination de client mais à usage perso, et la gestion d'erreur me sert à débugguer (pas cool de devoir tracer une erreur dans un programme quand on ne sait même pas où commencer)
0
Minikisscool Messages postés 112 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 1 avril 2008 1
29 juil. 2004 à 15:06
Oui et bien je crois que je vais activer la gestion d'erreur et réfléchir à la mettre avec des explications.

Surtout que l'utilisateur final ce n'est pas moi

merci de votre aide

a+
0
radhouene Messages postés 13 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 19 août 2004
29 juil. 2004 à 15:54
c pas nécessaire de les mettre.

le code é facile:

private sub ......

on error go to gest-err

'tu mets ton code

gest-err:
tu tape ton code . Exemple: err.raise

parfois il fo mettre : if err then et après tu mets ton code de gestion des erreurs
0
nasro0tman Messages postés 7 Date d'inscription samedi 7 octobre 2006 Statut Membre Dernière intervention 21 décembre 2010
25 avril 2008 à 13:56
j'ai besoin d'une code la gestion des error dans mon application
0
Rejoignez-nous