VBScript - Gestion des erreurs

Il existe trois types d'erreurs de programmation: (a) les erreurs de syntaxe, (b) les erreurs d'exécution et (c) les erreurs logiques.

Erreurs de syntaxe

Les erreurs de syntaxe, également appelées erreurs d'analyse, se produisent au moment de l'interprétation pour VBScript. Par exemple, la ligne suivante provoque une erreur de syntaxe car il manque une parenthèse fermante -

<script type = "text/vbscript">

   dim x,y
   x = "Tutorialspoint"
   y = Ucase(x

</script>

Erreurs d'exécution

Les erreurs d'exécution, également appelées exceptions, se produisent pendant l'exécution, après interprétation. Par exemple, la ligne suivante provoque une erreur d'exécution car ici la syntaxe est correcte, mais au moment de l'exécution, elle essaie d'appeler fnmultiply, qui est une fonction non existante -

<script type = "text/vbscript">
   Dim x,y
   x = 10
   y = 20
   z = fnadd(x,y)
   a = fnmultiply(x,y)
   
   Function fnadd(x,y)
      fnadd = x+y
   End Function

</script>

Erreurs logiques

Les erreurs de logique peuvent être le type d'erreurs le plus difficile à localiser. Ces erreurs ne sont pas le résultat d'une erreur de syntaxe ou d'exécution. Au lieu de cela, ils se produisent lorsque vous faites une erreur dans la logique qui anime votre script et que vous n'obtenez pas le résultat attendu. Vous ne pouvez pas détecter ces erreurs, car le type de logique que vous souhaitez mettre dans votre programme dépend des besoins de votre entreprise. Par exemple, diviser un nombre par zéro ou un script écrit qui entre en boucle infinie.

Objet Err

Supposons que si nous avons une erreur d'exécution, l'exécution s'arrête en affichant le message d'erreur. En tant que développeur, si nous voulons capturer l'erreur, alorsError L'objet est utilisé.

Exemple

Dans l'exemple ci-dessous, Err.Number donne le numéro d'erreur et Err.Description donne une description de l'erreur.

<script type = "text/vbscript">
  
  Err.Raise 6     ' Raise an overflow error.
  MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
  Err.Clear       ' Clear the error.

</script>