¿Hay alguna manera de comprobar para ver si se define una función de VBScript?
-
06-09-2019 - |
Pregunta
Esto es probablemente sólo una ilusión ...
¿Hay alguna manera de comprobar para ver si una función ASP / VBScript se define antes de llamar?
Solución
Es una forma un poco hacky para hacerlo, ya que se basa en haber establecido "On Error Resume Next", pero se puede hacer algo como esto:
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
La llamada a GetRef generará una excepción si el submarino o función que está tratando de obtener un puntero a que no existe (como es el caso aquí con DoStuff2). A continuación, puede comprobar si la referencia se fijó como se esperaba.
Otros consejos
Aquí está mi solución que funciona en el mismo principio, pero el hacky-dad es bastante auto-contenido:
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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow