在经典的ASP中,有没有办法在应用程序级别处理错误?
在传统的ASP中,有没有办法在应用程序级别处理错误?在经典的ASP中,有没有办法在应用程序级别处理错误?
是否有处理传统ASP 3中的错误/异常的指导原则? Server.GetLastError()没有太多的工作...
我在找一些像在ASP.Net Global.asax中找到的Application_Error()
。
global.asa中的任何等价物?要智能记录错误的类?像旧的企业库异常处理ASP3 ...
嘿,我是一个梦想家!
非常感谢任何指针
try:
some code that can raise an error
except:
do error handeling stuff
finally:
clean up, close files etc
可以在VBScript进行仿真如下:
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
请问这个窝K +当新创建的实例超出范围时,将调用'class_terminate'方法。当interperter碰到'end with'语句或者由于错误导致callstack解开时,会发生这种情况。与原生Python方法相比,它不太漂亮,但它工作得很好,而且不难看。
对于顶级错误处理,您可以使用相同的技术。这一次不要使用with语句,而是创建一个错误处理程序的全局实例。请注意,ASPError对象提供的server.getLastError()与vbscript err对象不同,只有在IIS完成其server.transfer到500:100错误处理程序并返回到您的页面以收集垃圾。示例处理程序:
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
你的意思是在每个请求中创建一个cDebugger对象吗? – 2009-10-22 17:55:41
确实。我们在应用程序中有两个调试类。在生产中,我们使用每个电子邮件发送一个错误报告,而在开发中我们使用一个将调试日志转储到屏幕上的报告。通过应用程序对象中的设置完成开发和生产之间的切换。 – 2009-10-26 12:00:06
@JoostMoesker我明白CustomErrorHandler方法(try..catch..finally),但我不明白cDebugger方法的顶级错误处理。请你能举一个更详细的例子吗? – Oliver 2016-09-21 07:42:38
<% On Error Resume Next %>
If Err.number <> 0 then 'do other stuff
不幸的是,Global.ASA仅提供了Application_OnStart, Application_OnEnd, Session_OnStart and Session_OnEnd
方法。没有错误处理。
您可以得到最接近的(AFAIK)使用IIS中的Custom Errors
功能指向其他文件或URL以处理该错误。
在我看来,是太麻烦了。这是一个缺失的功能,可以让我迁移一些网站,只为了知道该网站正常运行而无任何错误。
我将IIS中的500错误页面映射到自定义错误处理.asp页面。这个页面然后使用Server.GetLastError获取最后一个错误给我发送关于错误,查询字符串,服务器变量等细节的电子邮件。然后它向用户显示一个友好的消息。
有没有办法做到这一点**只有**的ASP错误,以便在.NET代码中的500错误不重定向? – 2014-05-05 17:01:56
@JoshuaFrank我认为错误500:100仅适用于ASP错误 – Oliver 2016-09-21 07:43:36
我们可以假设你正在加载VB6对象吗? – ChaosPandion 2009-10-21 21:35:33
您是否认为可以在.net中创建一个IHttpModule,并将您的模块附加到网站上,以便将错误捕获到网站上? – 2009-10-22 12:42:29
您可以举一个您关心的Global.ASA中的应用程序级活动的例子吗?除了ON ERROR RESUME NEXT,我不认为有太多... – CLaFarge 2015-06-22 02:09:23