Cuando estemos familiarizados con ASP, lo encontraremos muy simple, por lo que muchos desarrolladores no pensarán en la forma de lidiar con los errores. La mayoría de los sitios web comerciales escritos en ASP ignoran los errores. Entonces, entendamos cómo lidiar con los errores de ASP ahora.
Breve introducción
ASP es tan simple que muchos desarrolladores no piensan en el manejo de errores. El manejo correcto de los errores puede hacer que su aplicación sea más razonable. He visto muchos sitios web comerciales escritos en ASP, la mayoría de los cuales ignoran el manejo de errores.
Hay tres tipos de error principales:
Error de compilación:
Este tipo de error ocurre generalmente debido al problema de sintaxis del código.
El ASP dejó de funcionar debido a un error de compilación.
Error de ejecución
Este error ocurre cuando está listo para ejecutar el ASP.
Por ejemplo: si intenta asignar un valor a una variable, pero está más allá del alcance permitido por la variable.
Error lógico
Los errores lógicos son los más difíciles de detectar. Este tipo de error es a menudo un error estructural que una computadora no puede descubrir.
Esto requiere que revisemos a fondo nuestro código.
Debido a que los errores de compilación generalmente ocurren junto con errores lógicos y generalmente se pueden mostrar, lo que nos preocupa es el error de operación. Todo termina el funcionamiento del ASP y deja un montón de texto muy hostil para el usuario.
Entonces, ¿cómo lidiamos con los errores de operación? ? Primero echemos un vistazo al único comando de error que nos proporcionó ASP: en el reanudación de errores a continuación (me gustaría recordar a los principiantes que solo hay en las siguientes declaraciones de Error Reano en ASP, y no hay declaraciones de Errum GOTO en currículum). Si no usa el reanudación de errores en las siguientes declaraciones, se producirán todos los errores de operación. Esto es fatal, entonces un código de error se "mostrará" al usuario, y el programa ASP también se detendrá.
Aquí hay un código de error:
Proveedor de Microsoft OLE DB para controladores ODBC Error 80004005
[Microsoft] [ODBC Manager del controlador] Nombre de fuente de datos no encontrado y no se especificó el controlador predeterminado
/test.asp, línea 60
Cuando usamos la declaración de reanudación de error ON en la parte superior del programa, todos los errores se ignorarán y el programa ejecutará automáticamente la siguiente declaración. De esta manera, el programa se ejecutará completamente y el usuario no verá el mensaje de error después de que ocurra un error. Pero también hay desventajas de esta manera, es decir, si el programa no se ejecuta como lo imagina, será difícil para usted averiguar qué está mal, por lo que debe lidiar con los errores cuando sea necesario.
Errores de manejo
En ASP, la mejor manera de lidiar con los errores es poner el código en la parte inferior del programa para manejar los errores. También recomiendo usar búferes en cada programa ASP. De esta manera, si ocurre un error, la página se detendrá y el contenido de la página se borrará, de modo que el usuario no vea el mensaje de error y ¡habrá menos quejas sobre usted! Aquí hay un ejemplo:
< %@ Idioma = "vBscript" %>
<% 'Establecer búfer en verdad
Respuesta.Buffer = True
'Iniciar manejo de errores
En el currículum de error siguiente
%>
<% 'Manejo de errores
Si err.number <> 0 entonces
'Borre la página
Respuesta.
'Mostrar mensaje de error al usuario
%>
<html>
<Evista>
<title> </title>
</ablo>
<Body bgcolor = "#C0C0C0">
<Font face = "arial"> Se produjo un error en la ejecución de esta página ASP <br>
Informe la siguiente información en el escritorio de soporte <p>
<b> Objeto de error de página </b> <br>
Número de error: < %= err.number %> <br>
Mensaje de error: < %= err.description %> <br>
Archivo de error: < %= err.esurce %> <br>
Línea de error: < %= err.line %> <br>
</font>
</body>
</Html>
<%Final si%>
Como puede ver anteriormente, primero me puse en el currículum de error a continuación, para que un error no afecte la ejecución del programa.
Manejo de errores y base de datos
La ejecución de agregar bases de datos al manejo de errores es muy complicada. Si tenemos un programa con muchos comandos para agregar registros a la base de datos, si la inserción/actualización se ejecuta en la parte inferior del programa, si nuestro error ocurre antes, ¡entonces terminará! Agregaremos un mensaje de error a la base de datos. Debido a que usamos en el currículum de error a continuación, ¡todos los errores fueron ignorados! Incluso si hay un error antes, el programa aún agregará datos a la base de datos.
Para evitar esta situación, primero tenemos que hacer algunos trucos. La forma correcta de lidiar con él es la siguiente:
If err.number = 0 y objconnection.errors.count = 0 entonces
'La declaración solo se puede ejecutar aquí porque no hay errores
Establecer rStresults = dbdata.execute (txtsql)
Final si
Soluciones más avanzadas
Cuando ocurre un error, también puede mostrar más mensajes de error. A continuación se muestra un ejemplo de manejo de errores de base de datos y página. Con él, podemos descubrir todos los errores en nuestro programa a la vez. (Dado que creo que el inglés es más difícil de hablar en algunos lugares, no hay traducción).
<%
Si err.number <> 0 entonces
Respuesta.
Seleccione Case Err.Number
Caso 8 'Especifique el número incorrecto
'Solucione los errores personalizados aquí
Error general del caso de lo contrario
If isObject (objconnection) entonces
If objconnection.errors.count> 0 entonces
%>
<b> Objeto de conexión de base de datos </b>
< % Para intloop = 0 a objconnection.errors.count - 1 %>
Error no: < %= objconnection.errors (intloop) .number %> <br>
Descripción: < %= objconnection.errors (intloop) .Descripción %> <br>
Fuente: < %= objconnection.errors (intloop) .surce %> <br>
Sqlstate: < %= objconnection.errors (intloop) .sqlstate %> <br>
NationalError: < %= objconnection.errors (intloop) .nativeError %> <p>
<% Siguiente
Final si
Final si
Si err.number <> 0 entonces
%>
<b> Objeto de error de página </b> <br>
Número de error < %= err.number %> <br>
Descripción del error < %= Err.Description %> <br>
Fuente < %= Err.Source %> <br>
Linenumber < %= err.line %> <p>
<% Final si
Final seleccionar
Final si
%>
¡El ejemplo anterior nos permite lidiar con muchos problemas que ocurren en la base de datos, que también se usa comúnmente en nuestra programación diaria! También debemos ver esa instrucción Select Case, que nos permite manejar errores específicos.
Redirigir y manejo de errores
Una cosa a la que debemos prestar atención es el objeto de redirección que a menudo usamos. Si aparece un objeto de redirección en una página, entonces el manejo de errores perderá su significado. Entonces tenemos que lidiar con eso antes de girar, como sigue:
If err.number = 0 y objconnection.errors.count = 0 entonces
Respuesta.
Respuesta.Redirect? Lt; url aquí>?
Final si
Hacer que el código sea más ordenado
Para hacer que el código sea más ordenado, primero ubique el archivo manejado por error en un archivo contener. De esta manera, puede usarlo en cualquier archivo. Esto también es conveniente para modificar.
Agregue la declaración de reanudación de error en la parte superior de su programa (después de la declaración de idioma, por supuesto).
Realice la comprobación de errores antes de ejecutar SQL.
También se requirió manejo de errores antes de usar redirección.
Le permite manejar errores que contienen archivos en la parte superior del código
Este es el final del contenido del método de manejo de errores ASP. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos.