Lorsque nous connaissons ASP, nous le trouverons très simple, de nombreux développeurs ne penseront pas à la façon de gérer les erreurs. La plupart des sites Web commerciaux écrits en ASP ignorent les erreurs. Alors comprenons comment gérer les erreurs ASP maintenant.
Brève introduction
L'ASP est si simple que de nombreux développeurs ne pensent pas à la gestion des erreurs. Le traitement correct des erreurs peut rendre votre application plus raisonnable. J'ai vu de nombreux sites Web commerciaux écrits dans ASP, dont la plupart ignorent la gestion des erreurs.
Il existe trois principaux types d'erreur:
Erreur de compilation:
Ce type d'erreur se produit généralement en raison du problème de syntaxe du code.
L'ASP a cessé de fonctionner en raison d'une erreur de compilation.
Erreur d'exécution
Cette erreur se produit lorsque vous êtes prêt à exécuter l'ASP.
Par exemple: si vous essayez d'attribuer une valeur à une variable, mais il est au-delà de la portée autorisée par la variable.
Erreur logique
Les erreurs logiques sont les plus difficiles à détecter. Ce type d'erreur est souvent une erreur structurelle qui ne peut pas être découverte par un ordinateur.
Cela nous oblige à vérifier soigneusement notre code.
Étant donné que les erreurs de compilation se produisent généralement avec des erreurs logiques et peuvent généralement être affichées, ce qui nous inquiète est l'erreur de fonctionnement. Tout termine le fonctionnement de l'ASP et laisse un tas de texte très hostile pour l'utilisateur.
Alors, comment gérons-nous les erreurs de fonctionnement! ? Jetons d'abord un aperçu de la seule commande d'erreur qui nous est fournie par ASP - sur l'erreur reprendre ensuite (je voudrais rappeler aux débutants qu'il n'y a que sur des instructions d'erreur de reprendre les prochaines en ASP, et il n'y a pas d'instructions GOTO de reprendre l'erreur). Si vous n'utilisez pas sur les instructions Error Repume Next, toutes les erreurs de fonctionnement se produiront. Ceci est fatal, alors un code d'erreur sera "affiché" à l'utilisateur, et le programme ASP s'arrêtera également.
Voici un code d'erreur:
Proviseur Microsoft Ole DB pour l'erreur des pilotes ODBC 80004005
[Microsoft] [ODBC Driver Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié
/test.asp, ligne 60
Lorsque nous utilisons l'instruction ON ERROR RESPUMEZ NEXT en haut du programme, toutes les erreurs seront ignorées et le programme exécutera automatiquement l'instruction suivante. De cette façon, le programme sera entièrement exécuté et l'utilisateur ne verra pas le message d'erreur après une erreur. Mais il y a aussi des inconvénients de cette manière, c'est-à-dire que si le programme ne s'exécute pas comme vous l'imaginez, il vous sera difficile de savoir ce qui ne va pas, vous devez donc faire face aux erreurs si nécessaire.
Gestion des erreurs
Dans ASP, la meilleure façon de gérer les erreurs est de mettre du code au bas du programme pour gérer les erreurs. Je recommande également d'utiliser des tampons dans chaque programme ASP. De cette façon, si une erreur se produit, la page s'arrête et le contenu de la page sera effacé, afin que l'utilisateur ne verra pas le message d'erreur et qu'il y aura moins de plaintes à votre sujet! Voici un exemple:
<% @ Lingots = "vbscript"%>
<% 'Régler le tampon sur true
Réponse.buffer = true
'Démarrer la gestion des erreurs
Sur l'erreur reprendre ensuite
%>
<% 'Gestion des erreurs
Si err.number <> 0 alors
'Effacer la page
Réponse.
'Afficher le message d'erreur à l'utilisateur
%>
<html>
<adal>
<Title> </Title>
</ Head>
<Corps bgcolor = "# c0c0c0">
<Font face = "Arial"> Une erreur s'est produite dans l'exécution de cette page ASP <br>
Veuillez signaler les informations suivantes au bureau d'assistance <p>
<b> Objet d'erreur de page </b> <br>
Numéro d'erreur: <% = err.number%> <br>
Message d'erreur: <% = err.description%> <br>
Fichier d'erreur: <% = err.source%> <br>
Ligne d'erreur: <% = err.line%> <br>
</font>
</docy>
</html>
<% Fin si%>
Comme vous pouvez le voir ci-dessus, j'ai d'abord défini sur l'erreur de CV, afin qu'une erreur n'affecte pas l'exécution du programme.
Gestion des erreurs et base de données
L'exécution de l'ajout de bases de données à la gestion des erreurs est très compliquée. Si nous avons un programme avec de nombreuses commandes pour ajouter des enregistrements à la base de données, si l'insert / mise à jour est exécuté en bas du programme, si notre erreur se produit avant, ce sera terminé! Nous ajouterons un message d'erreur à la base de données. Parce que nous avons utilisé sur les erreurs de reprendre ensuite, toutes les erreurs ont été ignorées! Même s'il y a une erreur auparavant, le programme ajoutera toujours des données à la base de données.
Pour éviter cette situation, nous devons d'abord faire quelques astuces. La bonne façon de y faire face est la suivante:
Si err.number = 0 et objconnection.errors.count = 0 alors
'L'instruction ne peut être exécutée ici que car il n'y a pas d'erreurs
SET RSTRESULTS = DBDATA.EXECUTE (TXTSQL)
Terminer si
Solutions plus avancées
Lorsqu'une erreur se produit, vous pouvez également afficher plus de messages d'erreur. Vous trouverez ci-dessous un exemple de gestion des erreurs de base de données et de page. Avec lui, nous pouvons découvrir toutes les erreurs de notre programme à la fois. (Comme je pense que l'anglais est plus difficile à parler à certains endroits, il n'y a pas de traduction).
<%
Si err.number <> 0 alors
Réponse.
Sélectionnez Case Err.Number
Cas 8 'Spécifiez le mauvais numéro
«Dépanner les erreurs personnalisées ici
Erreur générale du cas autre
Si isObject (objconnection) alors
Si objconnection.errors.count> 0 alors
%>
<b> Objet de connexion de la base de données </b>
<% Pour intloop = 0 à objconnection.errors.count - 1%>
N ° d'erreur: <% = objconnection.errors (intloop) .number%> <br>
Description: <% = objconnection.errors (intloop) .Description%> <br>
Source: <% = objconnection.errors (intloop) .source%> <br>
SqlState: <% = objconnection.errors (intloop) .sqlstate%> <br>
NIGNALERERROR: <% = objconnection.errors (intloop) .NativeError%> <p>
<% Suivant
Terminer si
Terminer si
Si err.number <> 0 alors
%>
<b> Objet d'erreur de page </b> <br>
Numéro d'erreur <% = err.number%> <br>
Description de l'erreur <% = err.description%> <br>
Source <% = err.source%> <br>
LineNumber <% = err.line%> <p>
<% Fin si
Fin de sélection
Terminer si
%>
L'exemple ci-dessus nous permet de faire face à de nombreux problèmes qui se produisent dans la base de données, qui est également couramment utilisé dans notre programmation quotidienne! Nous devons également voir cette instruction SELECT CASE, qui nous permet de gérer des erreurs spécifiques.
Redirection et gestion des erreurs
Une chose à laquelle nous devons prêter attention est l'objet redirigé que nous utilisons souvent. Si un objet de redirection apparaît dans une page, la gestion des erreurs perdra sa signification. Nous devons donc y faire face avant de tourner, comme suit:
Si err.number = 0 et objconnection.errors.count = 0 alors
Réponse.
Réponse.redirect? Lt; url ici>?
Terminer si
Rendre le code plus soigné
Pour rendre le code plus soigné, placez d'abord le fichier manqué par erreur dans un fichier contenu. De cette façon, vous pouvez l'utiliser dans n'importe quel fichier. Ceci est également pratique à modifier.
Ajoutez l'instruction Error Repup Next en haut de votre programme (après la déclaration linguistique bien sûr).
Faites la vérification des erreurs avant d'exécuter SQL.
La gestion des erreurs était également nécessaire avant d'utiliser la redirection.
Vous permettez de gérer les erreurs contenant des fichiers en haut du code
Il s'agit de la fin du contenu de la méthode de gestion des erreurs ASP. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun.