Question

Ceci est probablement un vœu pieux ...

Est-il possible de vérifier si une fonction ASP / VBScript est défini avant de l'appeler?

Était-ce utile?

La solution

Il 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 génère une exception si la sous ou la fonction que vous essayez d'obtenir un pointeur n'existe pas (comme cela est le cas ici avec DoStuff2). Vous pouvez ensuite vérifier si la référence a été fixé comme prévu.

Autres conseils

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 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top