ASP es tan simple que muchos desarrolladores no piensan en el manejo de errores. El manejo de errores puede hacer que su aplicación sea más lógica. He visto muchos sitios web comerciales escritos en ASP y la mayoría ignora el manejo de errores. Tipo equivocado.
Hay tres tipos principales de errores:
1. Error de compilación:
Este tipo de error suele ocurrir debido a problemas de sintaxis en el código. ASP dejó de ejecutarse debido a un error de compilación.
2. Error de ejecución:
Este error ocurre cuando se está preparando para ejecutar ASP. Por ejemplo: si intentas asignar un valor a una variable, pero está fuera del rango permitido de la variable.
3. Error de lógica:
Los errores lógicos son los más difíciles de detectar. Este error suele ser un error estructural que las computadoras no pueden encontrar. Esto requiere que inspeccionemos nuestro código de arriba a abajo.
Debido a que los errores de compilación generalmente ocurren junto con errores lógicos y generalmente se pueden mostrar, solo nos preocupamos por los errores de ejecución. Todo esto finaliza la ejecución de ASP y deja un montón de texto muy poco amigable para el usuario. Entonces, ¿cómo lidiamos con los errores de tiempo de ejecución?
Tipo de error:
Campo ADODB (0x800A0BCD)
BOF o EOF es VERDADERO, o el registro actual se ha eliminado y la operación requerida requiere un registro actual.
Motivo: cuando utilizó SQL para buscar registros en la base de datos, el resultado de la búsqueda estaba vacío y no manejó la situación de registros vacíos.
Solución: 1. Si no cree que el resultado de la búsqueda esté vacío, entonces debe considerar si su declaración SQL es correcta. 2. Si realmente está vacío, entonces debe agregar "if rs.eof then" o "do while; not rs.eof "Declaraciones como " se utilizan para manejar la situación eof.
Tipo de error:
(0×80020009)
Ocurrió un accidente.
Motivo: al utilizar SQL para buscar registros de la base de datos, el resultado de la búsqueda estaba vacío y usted llamó a registros como rs ("aa") en el código siguiente.
Solución: O lo mismo que el anterior, más el juicio y procesamiento de rs.eof, o su declaración SQL es incorrecta, lo que hace que no se encuentre el registro y el registro de rs ("aa") no se pueda usar más adelante.
Tipo de error:
Páginas activas del servidor, ASP 0126 (0×80004005)
No se encontró el archivo incluido 'xxx.asp'.
Motivo: como dice el mensaje de error, este archivo de inclusión no existe.
Solución: si está seguro de que este archivo existe, entonces su ruta está escrita incorrectamente. Por ejemplo, su ruta relativa al directorio raíz del sitio web debe ser inc/xxx.asp, luego inc/xxx.asp debe escribirse en include. , y no solo xxx.asp. Adjunto: La forma de escribir include es:
Tipo de error:
Proveedor Microsoft OLE DB para controladores ODBC (0×80004005)
[Microsoft][Controlador ODBC de Microsoft Access] La operación debe utilizar una consulta actualizable.
Motivo: Esto es muy común en servidores XP y es un problema de configuración del servidor o un problema de permisos de usuario.
Solución: si el error solo se debe a la depuración en esta máquina, haga clic con el botón derecho en la carpeta donde se encuentra el sitio web, haga clic en "Compartir y seguridad...", haga clic en Agregar... en "Seguridad", escriba todos y luego habilite esto. Los permisos del usuario son todos, es decir, se verifican todos excepto el primero. Después de confirmar, actualice y se puede usar. (Nota: si no puede encontrar la opción "Seguridad", haga clic en "Herramientas" en cualquier carpeta, luego en "Opciones de carpeta" - "Ver" y desmarque la columna "Usar uso compartido simple de archivos". Puede)
Tipo de error:
Error del compilador de Microsoft VBScript (0x800A0401)
Declaración no finalizada
Motivo: error de sintaxis.
Solución: Verifique las líneas solicitadas por el sistema. Si el mensaje es la última línea de esta página, es muy probable que la declaración if haya olvidado escribir "finalizar si" y la declaración de selección haya olvidado escribir "finalizar selección". En resumen, no hay final donde finalice. es necesario, lo que hace que el servidor no lo encuentre. Al final de la declaración, el error debe mostrarse en la última línea.
Tipo de error:
Motor de base de datos Microsoft JET (0x80040E10)
Al menos un parámetro no tiene ningún valor especificado.
Motivo: al escribir declaraciones SQL, a menudo llamamos a algunos parámetros y es posible que a uno de estos parámetros no se le haya asignado un valor.
Solución: compruebe si el valor de cada parámetro se pasa realmente. Es muy probable que algunos parámetros sean realmente "". Por supuesto, no es posible indexar la base de datos con dichos parámetros.
Tipo de error:
Motor de base de datos Microsoft JET (0x80040E37)
El motor de base de datos Microsoft Jet no puede encontrar la tabla de entrada ni la consulta 'AA'. Determina si existe y si su nombre está escrito correctamente.
Motivo: Esta tabla no existe.
Solución: ¿Quizás escribiste el nombre de tabla incorrecto o te conectaste a la base de datos incorrecta? ¡Compruébalo con atención de nuevo!
Tipo de error:
Error de tiempo de ejecución de Microsoft VBScript (0x800A000D)
No coincide el tipo: /'[cadena: ""]/"
Motivo: Es porque el tipo de tu variable es cadena, pero la usas como un número u otro tipo.
Solución: por ejemplo, si necesita una variable numérica para calcular operaciones matemáticas como i=i+1, debe usar cint (nombre de variable) en la variable para forzar la conversión a tipo numérico. La comparación entre las dos variables también debe ser. del mismo tipo. , por lo que también es necesario convertirlo, el método es el mismo que el anterior.
Tipo de error:
Motor de base de datos Microsoft JET (0x80040E07)
El tipo de datos no coincide en la expresión estándar.
Motivo: Generalmente, se produce un error al escribir declaraciones SQL, es decir, se confunden variables numéricas y de cadena.
Solución: es fácil de hacer. Intente eliminar las comillas simples de las variables en SQL que tienen "" agregado, o agregue "" a las variables que originalmente se pensaba que eran números, y luego verifique el efecto.
Tipo de error:
Error de ejecución de Microsoft VBScript (0x800A01A8)
Objeto perdido:"
Motivo: Es muy probable que no hayas definido el objeto rs.
Solución: No olvide escribir set rs=server.CreateObject("adodb.recordset"), para que pueda definir el objeto o no use este método de escritura, solo use conn.execute("SQL"); , lo cual será mucho más conveniente y no será necesario considerar cuestiones de objetos.
Tipo de error:
Error de tiempo de ejecución de Microsoft VBScript (0x800A005E)
Uso no válido Nulo: 'Reemplazar'
Motivo: el uso no válido de funciones es común, incluido Split, etc. El motivo es relativamente simple, porque el contenido de su Reemplazar está vacío.
Solución: es mejor agregar un IF para verificar si el contenido que desea reemplazar está vacío.
Error del compilador Microsoft VBScript '800a03f6'
El controlador ODBC no admite la propiedad requerida.
Motivo: puede deberse a que no aparece ningún nombre de campo en la declaración SQL; por lo general, el nombre del campo o la palabra clave SQL están escritos incorrectamente. También es posible que la tabla a abrir por SQL haya sido abierta exclusivamente.
Solución: verifique cada nombre de campo y cada palabra clave que aparece en la declaración SQL
Proveedor Microsoft OLE DB para controladores ODBC error '80004005′
El usuario 'Admin' en la máquina 'HDZC-3JQSKBWO02' tiene un bloqueo exclusivo en la tabla de datos 'order_detail'.
Motivo: la tabla requerida por SQL se abre en forma de diseño de tabla mediante acceso
Solución: desactivar el diseño de la tabla
Error del compilador Microsoft VBScript '800a03f6'
El artículo no se encontró en la colección correspondiente al nombre requerido o al número ordinal.
Motivo: No aparece ningún nombre de campo en la declaración SQL. Generalmente es un error al escribir el nombre del campo o la palabra clave SQL.
Solución: verifique cada nombre de campo que aparece en la declaración SQL
ADODB.Error de conjunto de registros '800a0e78′
No se permiten operaciones mientras el objeto esté cerrado.
Motivo: rs.close se usó para cerrar el objeto rs antes de la declaración rs.open sql,conn,3,3.
Solución: elimine el rs.close anterior
Proveedor Microsoft OLE DB para controladores ODBC error '80040e14′
[Microsoft][ODBC Microsoft Access Driver] Error de sintaxis (falta operador) en la expresión de consulta 'oid form classtree donde oid = 25′.
Motivo: hay una palabra clave en inglés escrita ilegalmente o un error de subpárrafo en la declaración SQL.
Solución: escriba la declaración SQL y luego compárela palabra por palabra para descubrir los errores de escritura.
La operación requiere una consulta actualizable.
Respuesta: Compruebe si el archivo de la biblioteca es de solo lectura.
Respuesta 2: El conjunto de registros ordenados (ordenados por) (rs) no permite operaciones de actualización (rs.update)
3219 Operación no permitida en este contenido
Respuesta 3: Si las propiedades del campo de la base de datos están configuradas para permitir la inserción de valores nulos.
adErrArgumento inválido 3001
0x800A0BB9
La aplicación utiliza un parámetro que es del tipo incorrecto, está fuera del rango aceptable o entra en conflicto con otros parámetros.
adErrNoCurrentRecord 3021
0x800A0BCD
BOF o EOF es Verdadero o el registro actual se ha eliminado. La operación solicitada por la aplicación requiere del registro vigente.
adErrIllegalOperation 3219
0x800A0C93
La operación solicitada por la aplicación no está permitida en este contexto.
adErrInTransaction 3246
0x800A0CAE
La aplicación no puede cerrar explícitamente el objeto Conexión durante una transacción.
adErrCaracterísticaNo Disponible 3251
0x800A0CB3
El proveedor no soporta la operación solicitada por la aplicación.
anuncioErrItemNotFound 3265
0x800A0CC1
ADO no puede encontrar un objeto en la colección que corresponda al nombre o referencia de secuencia solicitada por la aplicación.
anuncioErrObjectInCollection 3367
0x800A0D27
No se puede agregar, el objeto ya está en la colección.
adErrObjectNotSet 3420 0x800A0D5C El objeto al que hace referencia la aplicación ya no apunta a un objeto válido.
adErrDataConversión 3421
0x800A0D5D
La aplicación ha utilizado un tipo de valor que no es adecuado para la operación actual.
adErrObjectCerrado 3704
0x800A0E78
Si el objeto está cerrado, no se permite la operación solicitada por la aplicación.
adErrObjectOpen 3705
0x800A0E79
Si el objeto está abierto, no se permite la operación solicitada por la aplicación.
adErrProviderNotFound 3706
0x800A0E7A
ADO no puede encontrar el proveedor especificado.
anuncioErrBoundToCommand 3707
0x800A0E7B
La aplicación no puede utilizar el objeto Command para cambiar la propiedad ActiveConnection del objeto Recordset a sus datos de origen.
adErrInvalidParamInfo 3708
0x800A0E7C
La aplicación define incorrectamente el objeto Parámetro.
adErrConexión no válida 3709
0x800A0E7D
Una aplicación solicita una operación en un objeto haciendo referencia a un objeto Connection cerrado o no válido.
ADODB.Error de campo '80020009' BOF o EOF son "verdaderos" o el registro actual se ha eliminado y la operación requerida requiere un registro actual.
La solución es la siguiente: Este error se debe al hecho de que los registros de SELECT y DELETE no existen, o no hay registros en la biblioteca, así que verifique la declaración SQL y si las condiciones de SELECT y DELETE son correctas. También es mejor SELECCIONAR un registro o usar Activado antes de ELIMINAR. Error Reanudar Siguiente…….En Error Ir a 0 para manejar. Si es porque no hay ningún registro en la biblioteca, simplemente agregue un juicio If objRecordSet.Eof Y objRecordSet.Bof Entonces, porque cuando se abre RecordSet, el puntero apunta al final de forma predeterminada, por lo que puede usar If objRecordSet. Eof Entonces para juzgar.
ActiveServerPages,ASP0126(0×80004005)–>incluir archivo no encontrado
MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–>Error de declaración SQL (el tipo de datos no coincide o el nombre de la tabla (nombre de campo) se encuentra en estado de edición, o la tabla no existe en la base de datos abierta por conn)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–>Error de declaración SQL (error de nombre de campo o falta de coincidencia de tipo de datos)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–>error de declaración SQL (el tipo de campo a insertar o actualizar no coincide con el tipo de datos de la variable)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–>error de declaración SQL (los datos que se van a insertar o actualizar se desbordan)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–>Error de declaración SQL (el nombre del campo de actualización o el tipo de datos a actualizar es incorrecto)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–>error de declaración SQL (el valor del campo a insertar o actualizar no puede ser nulo)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005) –>Error al abrir la base de datos, no se encontró ninguna base de datos en el directorio especificado
MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–>Tabla no encontrada
Error de tiempo de ejecución de MicrosoftVBscript (0x800A000D)–>Error al hacer referencia a la variable rs (el objeto rs está cerrado o no está definido)
Error de tiempo de ejecución de MicrosoftVBscript (0x800A01C2)–>error de script de vbscript (error de declaración de vbscript)
Error de tiempo de ejecución de MicrosoftVBscript (0x800A0006)–>error de script de vbscript (error de desbordamiento)
Error del compilador MicrosoftVBscript (0x800A040E)–>bucle faltante
Error del compilador de MicrosoftVBscript (0x800A03EA)–>falta if o endif
Error del compilador de MicrosoftVBscript (0x800A03EE)–>Declaración no finalizada (falta ")")
Error del compilador de MicrosoftVBscript (0x800A03F6)–>error de declaración if (falta endif)
Error de tiempo de ejecución de MicrosoftVBscript (0x800A005B)–>falta el conjunto
Error de tiempo de ejecución de MicrosoftVBscript (0x800A0005)–>La variable no está definida
Error del compilador de MicrosoftVBscript (0x800A03F9)–>si falta la declaración, entonces
Error del compilador MicrosoftVBscript (0x800A0411)–>error de definición de declaración tenue
ADODB.Recordset(0x800A0BB9)–>Error de declaración SQL (la declaración SQL o la declaración conn no están definidas o se produce un error al asignar un valor a un atributo rs)
ADODB.Recordset(0x800A0CC1)–>error de objeto rs (el objeto rs en sí no existe o hace referencia incorrectamente a un nombre de campo que no existe)
ADODB.Recordset(0x800A0BCD)–>error de objeto rs (no hay ningún registro en el conjunto de registros pero se opera el conjunto de registros)
ADODB.Recordset(0x800A0E78)–>error de objeto rs (el conjunto de registros no existe, falta la declaración rs.open)
ADODB.Recordset(0x800A0CC1) –> error de objeto rs (haciendo referencia a un nombre de campo inexistente)
ADODB.Recordset(0x800A0E7D)–>error de definición de conexión
ADODB.Recordset(0x800A0CB3)–>La base de datos se abre en modo de solo lectura y los datos no se pueden actualizar.