VBScript — à l'Aide d'erreur de manipulation
Je veux utiliser VBScript pour détecter les erreurs et la session (c'est à dire sur l'erreur "journal de quelque chose") puis reprendre la ligne suivante du script.
Par exemple,
On Error Resume Next "Faire L'Étape 1 "Faire L'Étape 2 "Faire L'Étape 3
Lorsqu'une erreur se produit lors de l'étape 1, je veux que ce journal d'erreur (ou d'effectuer d'autres fonctions personnalisées avec elle), puis le reprendre à l'étape 2. Est-ce possible? et comment puis-je mettre en œuvre?
EDIT: je Peux faire quelque chose comme cela?
On Error Resume myErrCatch "Faire l'étape 1 "Faire l'étape 2 "Faire l'étape 3 myErrCatch: "journal d'erreur Resume Next
- Dylan réponse est à peu près aussi bon que VB est dans la gestion des Erreurs département. C'est pourquoi j'ai toujours utilisé du Javascript quand je pourrais sortir avec elle.
Vous devez vous connecter pour publier un commentaire.
VBScript n'a aucune notion de lancer ou attraper des exceptions, mais le runtime fournit un objet Err global qui contient les résultats de la dernière opération effectuée. Vous devez explicitement vérifier si le Tre.Numéro de la propriété est non-zéro après chaque opération.
Le "on Error Goto [label]" la syntaxe est pris en charge par Visual Basic et Visual Basic pour Applications (VBA), mais VBScript ne prend pas en charge cette fonctionnalité du langage, donc vous devez utiliser on Error Resume Next comme décrit ci-dessus.
err.clear
doit être utilisée après chaque case de l'objet, pour éviter des erreurs de déclenchement de l'enregistrement suivant (par exemple, technet.microsoft.com/en-us/library/ee692852.aspx), dans mon expérience,err
est effacée "par lui-même" comme le script progresse. Sans les tests plus loin, je devine que c'est en utilisant des objets effaceerr
comme un produit de leur fonctionnement interne.Err.Clear
.Noter que
On Error Resume Next
n'est pas défini à l'échelle mondiale. Vous pouvez mettre vos dangereuse partie de code par exemple dans une fonction, qui sera immédiatement interrompu si une erreur se produit, et d'appeler cette fonction à partir de sous-contenant précédentOERN
déclaration.Je suis exceptionnellement nouvelle pour VBScript, si cela peut ne pas être considéré comme une bonne pratique ou il y a peut être une raison, il ne devrait pas être fait de cette façon que je ne suis pas encore au courant, mais c'est la solution je suis venu avec de couper vers le bas le montant de la journalisation des erreurs de code dans mon bloc de code principal.
Vous pouvez regrouper vos étapes des appels de fonctions dans une façade de la fonction :
Ensuite, laissez votre gestion des erreurs dans un coin supérieur de la fonction qui appelle la façade :
Maintenant, supposons que
step3()
génère une erreur. Depuisfacade()
ne gère pas les erreurs (il n'y a pasOn error resume next
dansfacade()
), l'erreur sera retourné àmain()
etstep4()
etstep5()
ne sera pas exécutée.Votre gestionnaire d'erreur est maintenant refait dans 1 bloc de code