OVH Cloud OVH Cloud

Trap d'erreur en VB et en ASP ?

2 réponses
Avatar
teddy
Bonjour,

Je sais récupérer le numéro d'erreur Error.Number en VB6 et le traiter pour
éviter l'affichage d'un message runtime pas "très propre" et pour enchaîner
un traitement de cette erreur.

Mais savez-vous comment faire en ASP-VB Script ?

Merci pour vos idées.

Ted

2 réponses

Avatar
jbongran
teddy wrote:
Bonjour,

Je sais récupérer le numéro d'erreur Error.Number en VB6 et le
traiter pour éviter l'affichage d'un message runtime pas "très
propre" et pour enchaîner un traitement de cette erreur.

Mais savez-vous comment faire en ASP-VB Script ?

Merci pour vos idées.

Ted



Un petit exemple :
On Error Resume Next 'Pas de GoTo en vbs
... code
If Err.Number = 0 Then
Response.Write "Bien joué, pas d'erreur<br>" & vbCrLf
Else
Response.Write "<ul>Arghh !, une erreur est apparue :</ul>" & vbCrLf
Response.Write "<li>Numéro: " & Err.Number & "</li>" & vbCrLf
Response.Write "<li>Description: " & Err.Description & "</li>" & vbCrLf
Response.Write "<li>Source: " & Err.Source & "</li>" & vbCrLf
Err.Clear
End If

Bien sûr tu peux créér aussi toi même une erreur par la méthode
Err.Raise(numéro)
Si tu utilises des bases de données, préfère l'utilisation de cette routine
avant de taper dans l'objet Err, de temps en temps des 'erreurs' en ADO n'en
sont pas (message informatif) ou ne gêne pas l'éxécution d'un code (un
delete sans enregistrement correspondant).
Exemple :
If objDB.Errors.Count > 0 Then
For i = 0 To UBound(objDB.Errors())
Response.Write "Numéro: " & objDB.Errors(i).Number & "<br>" & vbCrLf
Response.Write "Description: " & objDB.Errors(i).Description & "<br>"
& vbCrLf
Response.Write "Source: " & objDB.Errors(i).Source & "<br>" & vbCrLf
Next
objDB.Errors.Clear
Err.Clear
End If

Ps : le code ci dessus à été tapé "à la volée", il peut donc y avoir de
(petites) erreurs...
Avatar
teddy
J'ai en effet des messages envoyés par ADO qui devraient être de simples
"warnings" mais qui arrêtent le traitement ce qui est très désagréable.

Pour tout remède, j'avais mis un "On Error Resume Next" mais plus d'infos
sur les erreurs "vraies" s'il en arrivait.

Merci beaucoup, c'est plus clair maintenant !

Ted



"jbongran" a écrit dans le message de
news:3f84755f$0$13306$
teddy wrote:
> Bonjour,
>
> Je sais récupérer le numéro d'erreur Error.Number en VB6 et le
> traiter pour éviter l'affichage d'un message runtime pas "très
> propre" et pour enchaîner un traitement de cette erreur.
>
> Mais savez-vous comment faire en ASP-VB Script ?
>
> Merci pour vos idées.
>
> Ted

Un petit exemple :
On Error Resume Next 'Pas de GoTo en vbs
... code
If Err.Number = 0 Then
Response.Write "Bien joué, pas d'erreur<br>" & vbCrLf
Else
Response.Write "<ul>Arghh !, une erreur est apparue :</ul>" & vbCrLf
Response.Write "<li>Numéro: " & Err.Number & "</li>" & vbCrLf
Response.Write "<li>Description: " & Err.Description & "</li>" &


vbCrLf
Response.Write "<li>Source: " & Err.Source & "</li>" & vbCrLf
Err.Clear
End If

Bien sûr tu peux créér aussi toi même une erreur par la méthode
Err.Raise(numéro)
Si tu utilises des bases de données, préfère l'utilisation de cette


routine
avant de taper dans l'objet Err, de temps en temps des 'erreurs' en ADO


n'en
sont pas (message informatif) ou ne gêne pas l'éxécution d'un code (un
delete sans enregistrement correspondant).
Exemple :
If objDB.Errors.Count > 0 Then
For i = 0 To UBound(objDB.Errors())
Response.Write "Numéro: " & objDB.Errors(i).Number & "<br>" & vbCrLf
Response.Write "Description: " & objDB.Errors(i).Description &


"<br>"
& vbCrLf
Response.Write "Source: " & objDB.Errors(i).Source & "<br>" & vbCrLf
Next
objDB.Errors.Clear
Err.Clear
End If

Ps : le code ci dessus à été tapé "à la volée", il peut donc y avoir de
(petites) erreurs...