ASP - RE:Control de errores bajo ASP

 
Vista:

RE:Control de errores bajo ASP

Publicado por Eduard Pascual (3 intervenciones) el 19/11/2005 12:07:07
Desde que publiqué la pregunta hasta ahora no había vuelto a acordarme de ello. Puesto que logré resolver el problema, incluyo aquí la solución/respuesta para que pueda ayudar a otros webmasters en situaciones parecidas:
Lo primero que averigué es que las estructuras de control del tipo 'On Error GoTo [TAG]' tan típicas de Visual Basic i VBA no están disponibles en Visual Basic Script. Explorando un poco, averigüé que en VBS sólo disponia de la instrucción 'On Error Resume Next', que se limita a ignorar el error y pasar a la siguiente línea de código en lugar de finalizar desastrosamente la ejecución. Así pues, la única manera que encontré para permitir que mi código se hiciese cargo del problema fue del siguiente modo:
On Error Resume Next
JMail.Execute 'Instrucción que puede generar el error
ErrorCode = Err.Number 'Guarda el resultado (nº error o 0 si no hay error)
'Err.Number sólo es útil si se consulta immediatamente después del error, al guardarlo en una variable podemos procesarlo más adelante
... 'el código continua
Select Case ErrorCode
Case 0:
'Todo correcto. Aquí va el código para mostrar la confirmación al usuario
Case -2147418113: '8000FFFF a decimal, es el error que pretendo gestionar
'Mensaje de error personalizado, explicando causas y soluciones
Case 1234567890: 'Cualquier error que se quiera controlar
'Código para el error
Case ... ' Usar un Case para cada código de error a gestionar
Case Else
'Código para "error desconocido" o "error no controlable", etc
End Select

En algunos casos, pueden ser útiles las secuencias de control IF, IF-ELSE, IF-ELSEIF-ELSEIF-...-ELSE, WHILE / DO-WHILE / UNTIL / LOOP, etc. La parte clave para resolver la gestión de errores está en usar el 'On Error Resume Next' y guardar el Err.Number después de cada instrucción que pueda generar un error que nos interesa controlar. Una vez guardado este dato, la manera de gestionarlo depende sólo del estilo e imaginación del programador y de las necesidades propias del script, página o programa.

Espero que esta pregunta/respuesta le sea de utilidad a alguien.
Atentamente,
Eduard Pascual
Programador - Webmaster - SEO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder