gpt4 book ai didi

asp-classic - 什么时候可以访问ASPError对象?

转载 作者:行者123 更新时间:2023-12-03 08:36:34 24 4
gpt4 key购买 nike

我已经开始使用ASPUnit对我的经典ASP代码进行单元测试。一切都很好,我很高兴。唯一的问题是测试生成运行时错误时显示的错误消息。例如,如果未在函数中的某个位置定义变量,则会收到错误消息:

Microsoft VBScript runtime error (500): Variable is undefined

What would be more useful is if it could tell me which file/line the error occurred on. I know that I can get this information from the ASPError object which is returned by the Server.GetLastError() and elsewhere in my project I have a custom 500 error page which makes use of this method to automatically report crashes to Fogbugz. However when I try to access Server.GetLastError anywhere else the information returned is blank. For example, the following code will output zero rather than the expected 4.

<%
Option Explicit
On Error Resume Next
aVariable = "hello"
Dim errObj : Set errObj = Server.GetLastError()
Response.Write errObj.Line
%>

这是访问ASPError的正确方法还是只能在自定义错误页面上使用?有没有更好的方法来获取ASPUnit中报告的错误消息?

最佳答案

据我所知,直到当前页面完成处理后,才会填充ASPError对象。它只能在500错误页面上使用。因此,理论上讲,如果您在设置500页时遇到错误,则IIS将内部重定向到该页,以使您至少可以记录该错误。然后,只有这样,ASPError对象才可用。我曾经有过使用xmlhttprequest尝试抓取页面的疯狂想法,但是那并不是它的工作方式。

简而言之,您无法做很多事情来获取所需的错误消息详细信息。

使用JScript服务器端,您可以使用try catch,它使您可以访问异常对象,但即使那样对您也不是太好,没有行号或其他任何东西。垃圾。

关于asp-classic - 什么时候可以访问ASPError对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com