91 votes

VBScript -- à l'Aide de la gestion d'erreur

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

164voto

Dylan Beattie Points 23222

VBScript n'a aucune notion de lancer ou attraper des exceptions, mais le runtime fournit un objet Err global qui contient les reuslts 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.

On Error Resume Next

DoStep1

If Err.Number <> 0 Then
  WScript.Echo "Error in DoStep1: " & Err.Description
  Err.Clear
End If

DoStep2

If Err.Number <> 0 Then
  WScript.Echo "Error in DoStop2:" & Err.Description
  Err.Clear
End If

'If you no longer want to continue following an error after that block's completed,
'call this.
On Error Goto 0

"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.

-4voto

PC-Gram Points 13

Je voudrais le code de cette façon:

On Error Resume Next
Dim ErrStep

ErrStep=1
DoStep1
ErrStep=2
DoStep2
ErrStep=3
DoStep3

If Err.Number <> 0 Then
      WScript.Echo "Error in step " & ErrStep & Err.Description
      ' Send a mail to me containing all parameters
      Err.Clear
End If
On Error Goto 0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X