On Error, instruction

Microsoft VBScript

Microsoft® Visual Basic® Scripting Edition On Error, instruction  Référence du langage 
Version 1 


Description
Active ou désactive la gestion des erreurs.
Syntaxe
On Error Resume Next
On Error GoTo 0
Notes
Si vous n'utilisez pas d'instruction On Error Resume Next à un autre endroit de votre code, toute erreur d'exécution se produisant pourra générer l'affichage d'un message d'erreur et l'arrêt de l'exécution du code. Toutefois, le comportement exact est déterminé par l'hôte exécutant le code. Parfois, il peut choisir de gérer certaines erreurs de manière différente. Dans certains cas, le débogueur de scripts pourra être appelé au niveau de l'erreur. Dans d'autres circonstances, aucune indication apparente d'erreur ne sera mentionnée car l'hôte ne notifie pas l'utilisateur. Là encore, tout est fonction de la manière dont l'hôte gère les erreurs qui se produisent.

Au sein d'une procédure particulière, une erreur n'est pas nécessairement fatale dès l'instant où la gestion des erreurs est activée le long de la pile d'appels. Si la gestion locale des erreurs n'est pas activée dans une procédure et qu'une erreur se produit, le contrôle est repassé à la pile d'appels jusqu'à ce qu'une procédure avec gestion des erreurs soit trouvée ; l'erreur est alors traitée à ce niveau. Si la gestion des erreurs n'est activée pour aucune des procédures de la pile d'appels, un message d'erreur est affiché à ce niveau et l'exécution prend fin ou l'hôte traite l'erreur comme il se doit.

L'instruction On Error Resume Next provoque la poursuite de l'exécution avec l'instruction succédant immédiatement à l'instruction ayant provoqué l'erreur d'exécution, ou avec l'instruction suivant immédiatement l'appel le plus récent de la procédure contenant l'instruction On Error Resume Next. Ceci permet de poursuivre l'exécution malgré une erreur d'exécution. Vous pouvez alors créer la routine de gestion d'erreur en ligne à l'intérieur de la procédure.

L'instruction On Error Resume Next devient inactive quand une autre procédure est appelée, de sorte que vous devez exécuter une instruction On Error Resume Next dans chaque routine appelée si vous souhaitez intégrer la gestion d'erreurs en ligne dans cette routine. Lorsque vous quittez une procédure, la fonction de gestion des erreurs retrouve l'état qu'elle présentait avant que vous n'accédiez à cette procédure.

Utilisez On Error GoTo 0 pour désactiver la gestion des erreurs si vous l'avez activée précédemment avec On Error Resume Next.

L'exemple ci-dessous illustre l'utilisation de l'instruction On Error Resume Next :

On Error Resume Next
Err.Raise 6  ' Génère une erreur de dépassement.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear    ' Efface l'erreur.