VBScript関数が定義されているかどうかを確認する方法はありますか?
-
06-09-2019 - |
質問
これはおそらくちょうど希望的観測です...
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
所属していません StackOverflow