PBe*_*ger 12 error-handling asp-classic
在经典的ASP中,有没有办法在应用程序级别处理错误?
是否有处理传统ASP 3中的错误/异常的指导原则?Server.GetLastError()不是很多...
我正在寻找像Application_Error()ASP.Net Global.asax中找到的东西.
global.asa中的任何等价物?用于智能地记录错误的类?就像ASP3的旧企业库异常处理一样......
嘿,我是一个梦想家!
非常感谢任何指针
Joo*_*ker 12
try:
some code that can raise an error
except:
do error handeling stuff
finally:
clean up, close files etc
Run Code Online (Sandbox Code Playgroud)
可以在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
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?当新创建的实例超出范围时,将调用'class_terminate'方法.当interperter命中'end with'语句或者callstack由于错误而被解除时,就会发生这种情况.它不像本机python方法那么漂亮,但它运行得很好而且不丑.
对于顶级错误处理,您可以使用相同的技术.这次不使用with语句,而是创建错误处理程序的全局实例.请注意提供的ASPError对象server.getLastError()与vbscript错误对象不同,并且只有在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
Run Code Online (Sandbox Code Playgroud)
不幸的是Global.ASA只提供Application_OnStart, Application_OnEnd, Session_OnStart and Session_OnEnd方法.没有错误处理.
您可以获得的最接近的(AFAIK)是使用Custom ErrorsIIS中的功能指向其他文件或URL来处理错误.

在我看来,太麻烦了.这是一个缺少的功能,使我迁移一些网站,只是为了安心,知道该网站正常工作没有错误.
| 归档时间: |
|
| 查看次数: |
6424 次 |
| 最近记录: |