Il existe deux types d'erreurs dans les scripts ASP, les erreurs de syntaxe et les erreurs d'exécution dont chacune provoque la plupart du temps l'arrêt du déroulement du programme et l'affichage d'une page expliquant l'erreur.

Les erreurs de syntaxe, généralement facile à détecter, consistent en des fautes de grammaire dans la structure du code comme un guillemet oublié dans une instruction en nécessitant, ou d'orthographe sur les éléments du langage comme Reponse.Write à la place de Response.Write.

Les erreurs d'exécution sont parfois plus insidieuses puisque le code semble correct, tout en provoquant un échec lors de l'interprétation. Cet échec pouvant être concrétisé par l'interruption du programme et la fameuse page d'explication de l'erreur, ou par l'affichage d'un résultat totalement imprévu sans que le déroulement du script ait été interrompu.

Il existe donc divers types d'erreurs d'exécution.

  • Les erreurs logiques :
    • Les valeurs hors limites.
    • Les priorités d'opérateurs erronées.
    • Le formatage des données erroné.
  • Les erreurs d'exécution :
    • de script côté serveur.
    • relatives à ASP.
    • relatives à SSI
    • relatives à ADO.
    • de script côté client.

Les erreurs logiques ne produisent généralement qu'un résultat erroné alors que les autres demeurent le plus souvent critiques.

<%
  dim i, j, k
  i = 10
  j = 2
  k = 20
  ' Ceci est une erreur logique dûe à
  ' des priorités d'opérateurs erronées
  Response.Write "Le produit de j * k auquel on ajoute i" _
                  & " est égal à : " & i + j * k
  ' retourne 240 alors qu'on attend 50
%>

<%
  Dim i, j
  i = 1000
  j = 0
  ' Ceci génére une erreur d'exécution de script
  Response.Write "La division de i par j est égal à : " _
                  & i / j
  ' L'erreur provoque l'interruption du programme
  ' et l'affichage d'une page descriptive de l'erreur
%>

Type d'erreur :
Erreur d'exécution Microsoft VBScript (0x800A000B)
Division par zéro
/laltruiste/coursasp/exemples/testerreur.asp, line 7

Ainsi, il existe une différence fondamentale entre les erreurs fatales au traitement d'une application ASP et celles produisant seulement des résultats imprévisibles. Les premières peuvent être rapidement localisées gràce au message d'erreur fournissant le fichier et le numéro de lignes où l'erreur s'est produite, alors que pour les secondes le déboguage peut devenir rapidement diffcile si le programme est complexe car aucune indication n'est fournie par l'interpréteur.

Le serveur IIS détecte automatiquement les erreurs et fait appel à la méthode Transfer associé à l'objet Server pour la génération d'une page explicative 500-100.asp. Cette dernière est un document prédéfini et stocké dans le répertoire C:\WINNT\Help\iisHelp\common. En outre, elle est reconnaissable au texte ci-dessous présent dans le message d'erreur affiché sur le navigateur du client.

HTTP 500.100 - Erreur interne au serveur - Erreur ASP
Services Internet (IIS)
Sommaire