try:
some code that can raise an error
except:
do error handeling stuff
finally:
clean up, close files etc
puede ser emulado en VBScript de la siguiente manera:
class CustomErrorHandler
private sub class_terminate
if err.number > 0 then
do error handeling stuff
end if
clean up, close files etc
end sub
end class
with new CustomErrorHandler
some code
...
end with
¿Cómo funciona esto WOR k? Se llamará al método 'class_terminate' cuando la instancia recién creada se salga del alcance. Esto sucede cuando el intérprete entra en la instrucción 'end with' o cuando la pila de llamadas se desenrolla debido a un error. Es menos bonito que el enfoque nativo de Python, pero funciona bastante bien y no es feo.
Para el manejo de errores de nivel superior puede utilizar la misma técnica. Esta vez, no use la instrucción with, sino que cree una instancia global de su manejador de errores. Tenga en cuenta que el objeto ASPError provisto server.getLastError() no es el mismo que el objeto vbscript err y solo está disponible después de que IIS haya realizado su transferencia de servidor. Al manipulador de errores 500: 100 y ha regresado a su página para recopilar el basura. Controlador de ejemplo:
class cDebugger
public sub do_debug
' print debug data here
end sub
public sub class_terminate
if server.getlasterror().Number <> 0 then
response.clear
call do_debug
end if
end sub
end class
¿Podemos suponer que está cargando objetos VB6? – ChaosPandion
¿Crees que es posible crear un IHttpModule en .net y conectar tu módulo a un sitio web, solo para interceptar el error en el sitio web? –
¿Puede dar un ejemplo de las actividades de nivel de aplicación en su Global.ASA que le preocupan? Además de ON ERROR RESUME NEXT, no creo que haya mucho ... – CLaFarge