Existe alguma maneira de verificar para ver se uma função VBScript é definido?
-
06-09-2019 - |
Pergunta
Este é provavelmente apenas uma ilusão pensar ...
Existe alguma maneira de verificar para ver se uma função ASP / VBScript é definida antes de chamar isso?
Solução
É uma maneira um pouco hacky para fazê-lo, uma vez que depende de ter set "On Error Resume Next", mas você poderia fazer algo parecido com isto:
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
A chamada para GetRef irá gerar uma exceção se o sub ou função que você está tentando obter um ponteiro para não existe (como é o caso aqui com DoStuff2). Você pode então verificar se a referência foi definida como esperado.
Outras dicas
Aqui está a minha solução que funciona com o mesmo princípio, mas o hacky-ness é bastante auto-suficiente:
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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow