Frage

Dies ist wahrscheinlich nur Wunschdenken ...

Gibt es eine Möglichkeit, um zu prüfen, ob eine ASP / VBScript-Funktion, bevor es Aufruf definiert wird?

War es hilfreich?

Lösung

Es ist ein wenig hacky Weg, es zu tun, wie es „On Error Resume Next“ gesetzt stützt sich auf zu haben, aber man kann so etwas tun:

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

Der Aufruf von GetRef wird eine Ausnahme, wenn der Unter erzeugen oder funktionieren Sie versuchen, einen Zeiger zu erhalten, gibt es nicht (wie in diesem Fall mit DoStuff2 ist). Anschließend können Sie überprüfen, ob die Referenz gesetzt wurde, wie erwartet.

Andere Tipps

Hier ist meine Lösung, die auf dem gleichen Prinzip funktioniert, aber die Hacky-ness ist ziemlich self-contained:

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 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top