これはおそらく考えているだけのことでしょう...VBScript関数が定義されているかどうかを調べる方法はありますか?
ASP/VBScript関数が呼び出される前に定義されているかどうかを確認する方法はありますか?
これはおそらく考えているだけのことでしょう...VBScript関数が定義されているかどうかを調べる方法はありますか?
ASP/VBScript関数が呼び出される前に定義されているかどうかを確認する方法はありますか?
それが「On Error Resume Nextを」設定したに依存しているとしてそれを行うには少しハック方法ですが、あなたはこのような何か行うことができます:GetRefへの呼び出しがあれば、例外を生成します
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
をサブ関数、またはポインタを取得しようとしている関数が存在しません(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
ええ - それは私がそれでやったことです。 :-) –
これを 'FunctionExists =(Err.Number = 0)'に単純化すると、 'Boolean'を設定できます。 – Lankymart
@Lankymartは、同じ動作しません。どうしていいか分かりません。 –
そうしないと、関数を呼び出すしようとした後、Err.Numberにをチェックしに興味。しかし、あなたが呼んでいる関数が定義され、呼び出されるかもしれませんが、エラーの原因になるかもしれません。 – Xiaofu
それは動作します。ありがとう! –