我在支持一些经典的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',需要对象。我认为这行代码不应该执行多次,但为了安全起见,我重新编写了这个函数。
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之前做一个测试,以精确地防止那个“需要对象”错误,但是这个测试却抛出了相同的错误。
我可以使用什么其他测试来确保在已经将其设置为Nothing的情况下不引用conn?
if
条件后面加上空格,即"if (not ("
**。 - Siva Charan