Ceci est probablement juste un vœu pieux ...Est-il possible de vérifier si une fonction VBScript est définie?
Y at-il un moyen de vérifier si une fonction ASP/VBScript est définie avant de l'appeler?
Ceci est probablement juste un vœu pieux ...Est-il possible de vérifier si une fonction VBScript est définie?
Y at-il un moyen de vérifier si une fonction ASP/VBScript est définie avant de l'appeler?
C'est une façon légèrement hacky de le faire car il repose sur avoir mis « On Error Resume Next », mais vous pouvez faire quelque chose comme ceci:
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
L'appel à getRef va générer une exception si la Sous-fonction ou la fonction que vous essayez d'obtenir un pointeur n'existe pas (comme c'est le cas ici avec DoStuff2). Vous pouvez ensuite vérifier si la référence a été définie comme prévu.
Voici ma solution qui fonctionne sur le même principe, mais le aki-ness est assez autonome:
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
Ouais - c'est ce que j'ai fini par faire avec ça. :-) –
Vous pouvez simplifier cela à 'FunctionExists = (Err.Number = 0)' pour définir le 'Boolean'. – Lankymart
@Lankymart, ne fonctionne pas de la même manière. Je ne sais pas pourquoi pas. –
Sinon, vous êtes dans le contrôle Err.Number après avoir essayé d'appeler la fonction. Mais alors la fonction que vous appelez peut être définie, être appelée, mais être la source de l'erreur, ce qui, je suppose, n'est pas ce que vous voulez. – Xiaofu
Cela fonctionne. Merci! –