Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic 我什么时候可以访问ASPError对象?_Asp Classic_Error Handling - Fatal编程技术网

Asp classic 我什么时候可以访问ASPError对象?

Asp classic 我什么时候可以访问ASPError对象?,asp-classic,error-handling,Asp Classic,Error Handling,我已经开始使用来单元测试我的经典ASP代码。这一切都很好,我很高兴。唯一的问题是测试生成运行时错误时显示的错误消息。例如,如果我没有在函数中的某个地方定义变量,则会出现以下错误: Microsoft VBScript runtime error (500): Variable is undefined Microsoft VBScript运行时错误(500):变量未定义 更有用的是,如果它能告诉我错误发生在哪个文件/行上。我知道我可以从Server.GetLastError()返回的Aspero

我已经开始使用来单元测试我的经典ASP代码。这一切都很好,我很高兴。唯一的问题是测试生成运行时错误时显示的错误消息。例如,如果我没有在函数中的某个地方定义变量,则会出现以下错误:

Microsoft VBScript runtime error (500): Variable is undefined Microsoft VBScript运行时错误(500):变量未定义 更有用的是,如果它能告诉我错误发生在哪个文件/行上。我知道我可以从Server.GetLastError()返回的Asperor对象中获取此信息,在我的项目中的其他地方,我有一个自定义的500错误页面,它利用此方法自动向Fogbugz报告崩溃。但是,当我尝试访问Server.GetLastError时,返回的信息为空。例如,以下代码将输出0,而不是预期的4

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


这是访问Asperor的正确方法还是仅在自定义错误页上才可以?有没有更好的方法来获取ASPUnit中报告的错误消息?

据我所知,在当前页面完成处理之前,不会填充ASPError对象。这意味着只能在500错误页面上使用。因此,理论上,当您设置了500页后出现错误时,IIS将对该页执行内部重定向,以允许您至少记录错误。然后,也只有到那时,ASPError对象才可用。我曾经有过使用xmlhttprequest来获取页面的疯狂想法,但这不是它的工作方式

简而言之,要获得所需的错误消息详细信息,您所能做的不多


使用JScript服务器端,您可以使用try-catch,它允许您访问异常对象,但即使这样对您也没有多大好处,没有行号或任何东西。垃圾。

Boo。这就是我害怕的。感谢您抽出时间回复。