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.
Le verbe 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.
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. Il termine le fonctionnement de l'ASP et laisse un tas de texte hostile à l'utilisateur.
Alors, comment gérons-nous les erreurs de fonctionnement! ? Jetons un coup d'œil en premier. Sur l'erreur, reprenez la prochaine instruction, toutes les erreurs d'exécution se produiront.
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%> <% 'Set Buffer sur True Response.Buffer = True' Start Error Gestion sur l'erreur Reprenez Next%> <% 'Gestion d'erreur si err.number <> 0 alors' Clear Page Response.Clear ' Affichez le message d'erreur à l'utilisateur%> <html> <éad- head> <itle> </ 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 éléments suivants Informations au support Desk <p> <b> Page Objet d'erreur de page </b> <br> Numéro d'erreur: <% = err.number %> <br> Message d'erreur: <% = err.Description%> <br> Erreur Message: <% = err.description%> <br> Erreur se produit Fichier: <% = err.source %> <br> ligne d'erreur: <% = err.line%> <br> </font> </ody> </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, alors 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.
Si err.number = 0 et objconnection.errors.count = 0 alors 'L'instruction peut être exécutée ici car il n'y a pas d'erreur définir RSTRESULTS = dbdata.execute (txtsql)
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. (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.Clear SELECT CASE Err.Number Case 8 'Spécifiez le numéro d'erreur' CASE ELSE 'Erreur générale 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%> NO: <% = objconnection.errors (intloop). %> <br> Description: <% = objconnection.errors (intloop) .Description%> <br> source: <% = objconnection.errors (intloop) .source %> <br> sqlstate: <% = objconnection.errors ( Intloop) .sqlstate%> <br> NativeError: <% = objconnection.errors (intloop) .NativeError%> <p> <% fin suivant si fin si l'err.number <> 0 alors%> <b> Erreur de page Objet </b> <br> Numéro d'erreur <% = err.number%> <br> Description d'erreur <% = err.description%> <br> source <% = err.source %> <br> lineNumber <% = Err.line%> <p> <% fin si fin se sélectionner fin 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 faire attention est l'objet redirigé que nous utilisons souvent. Nous devons donc y faire face avant de tourner, comme suit:
Si err.number = 0 et objconnection.errors.count = 0 alors réponse.Clear Response.Redirect? Lt; Url ici>?
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.
Ajouter (après la déclaration linguistique bien sûr) l'instruction Error Repup suivante en haut de votre programme.
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