【发布时间】:2012-03-13 15:10:02
【问题描述】:
我支持一些经典的 ASP 页面,其中一个使用和重用对象 conn 并在 .asp 页面完成处理时或页面重定向到另一个页面之前将其处理掉.
<%
dim conn
...
set conn = server.CreateObject("adodb.connection")
...
sub cleanUp()
conn.Close
set conn = nothing
end sub
...
sub pageRedirect(url)
call cleanUp()
response.Redirect url : response.End
end sub
...
' very end of file
call cleanUp()%>
我发现如果有重定向,我会在conn.Close 行收到服务器错误,Microsoft VBScript 运行时错误'800a01a8' Object required。我认为该行没有理由多次执行,但为了安全起见,我重写了函数
sub cleanUp()
if(not (conn Is Nothing)) then
conn.Close
set conn = Nothing
end if
end sub
但我仍然得到那个确切的错误,现在在if(not (conn Is Nothing)) 行!我认为Is Nothing 的目的是在使用变量名 conn 之前进行测试,以防止出现“需要对象”错误,但测试抛出了同样的错误。
如果 conn 已经设置为 Nothing,我可以使用什么其他测试来确保不引用它?
【问题讨论】:
-
在
if条件后给空间"if (not (" -
Empty 用于值变量,Nothing 用于对象。 conn 是一个对象。间距并不重要。
标签: asp-classic vbscript