Проверка того, является ли объект ничем, приводит к ошибке «Требуется объект»

Я поддерживаю некоторые классические 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?

8
задан East of Nowhere 12 March 2012 в 15:40
поделиться