質問

これはおそらくちょうど希望的観測です...

ASP / VBScriptの関数は、それを呼び出す前に定義されているかどうかを確認する方法はありますか?

役に立ちましたか?

解決

これは、それが「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とここにあるとして)存在しないためにポインタを取得しようとしている機能します。あなたはその後、予想通りの参照が設定されたかどうかを確認することができます。

他のヒント

ここでは同じ原理で動作します私の解決策はありますが、ハックネスはかなり自己完結型です。

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 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top