문제

이것은 아마도 희망적인 생각 일 것입니다 ...

ASP/VBScript 함수가 호출하기 전에 정의되어 있는지 확인하는 방법이 있습니까?

도움이 되었습니까?

해결책

"오류 이력서 다음"을 설정하는 데 의존하기 때문에 약간 해킹하는 방법이지만 다음과 같은 일을 할 수 있습니다.

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 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top