Это, вероятно, просто желаемое за действительное ...Есть ли способ проверить, определена ли функция VBScript?
Есть ли способ проверить, определена ли функция ASP/VBScript до ее вызова?
Это, вероятно, просто желаемое за действительное ...Есть ли способ проверить, определена ли функция VBScript?
Есть ли способ проверить, определена ли функция ASP/VBScript до ее вызова?
Это немного Hacky способ сделать это, поскольку это зависит от того, установлен «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 будет генерировать, если исключение sub или функция, которую вы пытаетесь получить указатель, не существует (как в случае с DoStuff2). Затем вы можете проверить, была ли ссылка задана как ожидалось.
Вот мое решение, которое работает по тому же принципу, но Hacky-Несс довольно самодостаточным:
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
Это работает. Благодаря! –