Есть ли способ проверить, определена ли функция VBScript? - PullRequest
14 голосов
/ 28 мая 2009

Это, вероятно, просто желаемое за действительное ...

Есть ли способ проверить, определена ли функция ASP / VBScript перед ее вызовом?

Ответы [ 2 ]

15 голосов
/ 12 сентября 2009

Вот мое решение, которое работает по тому же принципу, но хакерство довольно автономно:

Function FunctionExists( func_name )
    FunctionExists = False 

    On Error Resume Next

    Dim f : Set f = GetRef(func_name)

    If Err.number = 0 Then
        FunctionExists = True
    End If  
    On Error GoTo 0

End Function 
6 голосов
/ 28 мая 2009

Это немного хакерский способ сделать это, поскольку он полагается на "On Error Resume Next", но вы можете сделать что-то вроде этого:

On Error Resume Next
Dim objRef1, objRef2
Set objRef1 = GetRef("DoStuff1")
If objRef1 Is Nothing Then
    Call objRef1
Else
    MsgBox "DoStuff1 is not defined!"
End If

Set objRef2 = GetRef("DoStuff2")
If objRef2 Is Nothing Then
    MsgBox "DoStuff2 is not defined!"
Else
    Call objRef2
End If

Sub DoStuff1
    MsgBox "DoStuff1!"
End Sub

Вызов GetRef сгенерирует исключение, если подпрограмма или функция, на которую вы пытаетесь получить указатель, не существует (как в случае с DoStuff2). Затем вы можете проверить, была ли ссылка установлена ​​как ожидалось.

...