有没有办法检查是否定义了VBScript函数?

Mat*_*ole 14 vbscript function asp-classic defined

这可能只是一厢情愿的想法......

有什么方法可以在调用之前检查是否定义了ASP/VBScript函数?

Tri*_*ick 15

这是我的解决方案,它的工作原理相同,但hacky-ness非常独立:

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 
Run Code Online (Sandbox Code Playgroud)

  • 是的 - 这就是我最终用它做的事情.:-) (2认同)

Xia*_*ofu 6

这是一个有点hacky的方式,因为它依赖于设置"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
Run Code Online (Sandbox Code Playgroud)

如果您尝试获取指针的子或函数不存在,则对GetRef的调用将生成异常(如此处使用DoStuff2的情况).然后,您可以检查引用是否按预期设置.