64 votes

Que fait l'instruction "On Error Resume Next"?

Je suis venu à quelques exemples de VBScript, et j'ai vu la déclaration On Error Resume Next essentiellement au début du script.

Qu'est ce que ça fait?

85voto

David Points 1715

En gros, il indique au programme que vous rencontrez une erreur, continuez à la ligne suivante.

43voto

Tmdean Points 4594

Il convient de noter que même lorsque On Error Resume Next est en vigueur, l'objet Err est toujours rempli lorsqu'une erreur se produit. Vous pouvez donc toujours gérer les erreurs de style C.

 On Error Resume Next

DangerousOperationThatCouldCauseErrors

If Err Then
    WScript.StdErr.WriteLine "error " & Err.Number
    WScript.Quit 1
End If

On Error GoTo 0
 

24voto

En cas d'erreur, l'exécution continuera sur la ligne suivante sans interrompre le script.

12voto

t0mm13b Points 21031

Cela signifie, lorsqu'une erreur se produit sur la ligne, il est révélateur de vbscript pour poursuivre l'exécution sans annuler le script. Parfois, l' On Error suit l' Goto de l'étiquette de modifier le flux d'exécution, quelque chose comme cela dans un Sub bloc de code, maintenant vous savez pourquoi et le comment de l'utilisation de l' GOTO peut entraîner de code spaghetti:

Sous MySubRoutine()
 On Error Goto ErrorHandler

 REM code VB...

 REM Plus de Code en VB...

Exit_MySubRoutine:

 REM Désactiver le Gestionnaire d'Erreur!

 On Error Goto 0

 REM Quitter....
 Exit Sub

ErrorHandler:

 REM Faire quelque chose au sujet de l'Erreur

 Goto Exit_MySubRoutine
End Sub

Espérons que cela aide, Meilleures salutations, Tom.

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