Le langage ASP permet une personnalisation des pages d'erreur. Plutôt que d'utiliser celles fournies par défaut, il est possible de créer sa propre page d'erreur contenant des informations identiques.

En effet, l'objet ASPError a la fonction de fournir par l'intermédiaire de ses propriétés, les informations relatives à l'erreur qui s'est produite dans une application ASP.

ASPError.propriété

L'objet ASPError possède neuf propriétés dont quatre permettent de localiser le fichier, la ligne, la colonne et le code source où l'erreur s'est produite, et les autres identifient et décrivent l'erreur.

  • ASPCode (code ASP)
  • Number (numéro)
  • Source (code source)
  • Category (catégorie)
  • File (adresse du fichier)
  • Line (numéro de ligne)
  • Column (numéro de colonne)
  • Description (description courte)
  • ASPDescription (description ASP)

La création de l'objet ASPError s'effectue par l'intermédiaire de la méthode GetLastError de l'objet Server.

Set objet_ASPError = Server.GetLastError()

Il suffit, désormais de créer une page capable d'extraire les informations relative à l'erreur à partir de l'objet ASPError et de ses propriétés en prenant toutefois certaines précautions de formatage ou dispositions conditionnelles.

La propriété ASPCode retourne régulièrement une valeur lorsque des composants COM externes sont impliqués dans des erreurs. Sinon pour la plupart des erreurs de script, cette valeur reste indéfinie.

A l'instar de ASPCode, la propriété ASPDescription retourne une valeur indéfinie pour la plupart des erreurs de script, sauf celles impliquant un appel de méthode non-valide vers un objet ASP intrinsèque.

La valeur retournée par la propriété Number étant de type hexadécimal, son formatage devrait ressembler à la ligne de code ci-dessous.

Response.Write "0x" & Hex(Objet_ASPError.Number)

Enfin, la propriété Source retourne une chaîne de caractères représentant le code source de l'erreur. Mais ce-dernier pouvant contenir des éléments HTML, il est recommandé d'appliquer à cette valeur la méthode HTMLEconde de l'objet Server.

Response.Write Server.HTMLEncode(Objet_ASPError.Description)

La page d'erreur réalisée, il faut maintenant configurer le serveur IIS afin qu'à chaque erreur HTTP de type 500;100 (code d'erreur 500 : sous-code d'erreur 100) la page d'erreur personnalisée apparaisse à la place de celle par défaut.

Pour cela, il suffit de sélectionner un répertoire dans le Gestionnaire de services Internet (IIS) (Démarrer -> Programmes -> Outils d'administration), puis d'actionner le bouton droit de la souris, afin d'afficher le menu contextuel, d'effectuer un clic sur Propriétés pour voir apparaître une boîte à onglet Propriétés [du répertoire] sur laquelle il faut, enfin, cliquer sur Messages d'erreur personnalisés.

Configuration pour la personnalisation des pages d'erreur de type 500-100.

A partir de cet onglet, il faut sélectionner tout en bas de la liste déroulante, la ligne 500;100 URL /iisHelp/common/500-100.asp, puis cliquer sur Modifier les propriétés... pour voir une boîte de dialogue Propriétés du mappage des erreurs invitant à saisir une adresse URL vers la page d'erreur personnalisée dans le champ URL.

Un clic sur le bouton OK valide le changement, et à partir de ce moment, la page d'erreur 500-100 personnalisée sera affichée en cas d'erreur de syntaxe ou d'exécution dans une application Active Server Pages fonctionnant dans le répertoire sélectionné dans le Gestionnaire de services Internet (IIS).

Il est possible de revenir à la configuration initiale en cliquant sur le bouton Utiliser les valeurs par défaut de l'onglet Messages d'erreur personnalisés.

La page d'erreur de type 500;100 par défaut reste le meilleur moyen d'apprendre comment construire correctement son propre fichier personnalisé. Elle se trouve à l'adresse physique suivante :

C:\WINNT\Help\iisHelp\common\500-100.asp