OVH Cloud OVH Cloud

monitoring d'erreur

2 réponses
Avatar
thierry
bonjour, j'ai des zones de saisie pour des dates en VB6. J'usque là ça
va. afin de pouvoir faire des comparaisons, je les convertis en type
long.

date_du_jour = CLng(DateValue(Date))
On Error GoTo error_debut
etc.

le problème, c'est qd l'opérateur rentre des daes que le système ne
peut pas convertir. J'ai une erreur système qui apparaît, alors que je
voudrais mettre un message à moi. c'es le pourquoi du on error.

Comment faire pour bloquer les erreurs systèmes, les récupérer et
mettre un message à soi à la place.

Cordialement

Thierry

2 réponses

Avatar
ng
Salut,

Voici un exemple :

Private Sub Form_Load()
'//Gestion d'erreurs
On Error GoTo Form_Load_Error

Dim a As Long

'//Erreur
a = 4 / 0

'//Plus de gestion d'erreur
On Error GoTo 0
'//On se sauve
Exit Sub

'//Gestion des erreurs
Form_Load_Error:
If Err.Number = 11 Then '//Div par 0
MsgBox "Erreur : division par 0 !", vbExclamation, "Erreur"
Else '//Autre erreur inattendue
MsgBox Err.Description, vbCritical, "Erreur n°" & Err.Number
End If

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

thierry a écrit :

bonjour, j'ai des zones de saisie pour des dates en VB6. J'usque là ça
va. afin de pouvoir faire des comparaisons, je les convertis en type
long.

date_du_jour = CLng(DateValue(Date))
On Error GoTo error_debut
etc.

le problème, c'est qd l'opérateur rentre des daes que le système ne
peut pas convertir. J'ai une erreur système qui apparaît, alors que je
voudrais mettre un message à moi. c'es le pourquoi du on error.

Comment faire pour bloquer les erreurs systèmes, les récupérer et
mettre un message à soi à la place.

Cordialement

Thierry


Avatar
Vincent Guichard
thierry a écrit :



bonjour, j'ai des zones de saisie pour des dates en VB6. J'usque là ça
va. afin de pouvoir faire des comparaisons, je les convertis en type
long.

date_du_jour = CLng(DateValue(Date))
On Error GoTo error_debut
etc.




le "On Error ..." doit etre avant le code ou on veut "monitorer" les
erreurs:

sub proc ' ou function
'Code avec erreurs non gérées
...
On Error GoTo Gestion_Erreur
'Code avec erreurs gérées
...
exit sub 'ou exit function
Gestion _Erreur:
'Code de gestion de l'erreur
...
end sub ' ou function


Il existe aussi:
On Error Resume Next
pour ne pas gerer les erreurs, ou pour les gérer au coup par coup avec
Err.Number

On Error GoTo 0
pour restaurer la gestion d'erreur par default.