web-dev-qa-db-fra.com

Puis-je envoyer une erreur dans vbscript?

J'ai l'habitude de programmer en C #, qui a évidemment une gestion des erreurs assez robuste. Maintenant, je travaille sur un court projet dans VBScript. J'ai lu sur la gestion des erreurs avec VBscript en utilisant "On Error _______" et la variable globale Err.

Cependant, existe-t-il un moyen de générer mes propres erreurs? Par exemple, si une de mes fonctions reçoit le mauvais type de paramètre, je préfère que mon script échoue à ce moment-là, puis essayez de continuer.

31
Eric Anastas

Oui, vous pouvez. Utilisez le Err.Raise méthode, par exemple:

Err.Raise 5 ' Invalid procedure call or argument

Pour une liste des codes d'erreur standard de VBScript, voir Erreurs (VBScript) .

31
Helen

Alors que @ helenréponse est correct, il est un peu rare.

Il détaille la méthode Err.Raise() mais manque certains points clés.

De la question d'origine
Cependant, est-il possible de générer mes propres erreurs? Par exemple, si une de mes fonctions passe le mauvais type de paramètre, je préférerais que mon script échoue à ce moment-là, puis essayez de continuer.

Err.Raise() est extrêmement polyvalent, il peut lever des exceptions existantes (comme déjà discuté) mais il peut aussi lancer de toutes nouvelles exceptions définies par l'utilisateur.

Call Err.Raise(vbObjectError + 10, "My Application", "My custom error message")

vbObjectError (-2147221504) est une constante VBScript intégrée qui définit la limite pour générer des erreurs définies par l'utilisateur.

22
Lankymart

C # try-catch-finally

try {
    // some code
} catch( Exception e ) {
    // error handler
} finally {
    // clean up things
}

Équivalent VBScript

on error resume next
' some code
if( Err.number <> 0 ) then
    ' error handler -- you can use Err.raise() here to display your own errors
    Err.clear()
else
    ' clean up things
end if
on error goto 0

Pour de bons exemples VBScript, vous pouvez vérifier le projet ASP Xtreme Evolution

2
Fabio Zendhi Nagao