2008-10-30 9 views
3

Объект, над которым я работаю, создается в JavaScript, но используется в VBScript. В одном кодовом пути переменная M.DOM.IPt определена и имеет значение, а в другом - это не так. Мне нужно определить, было ли это определено или нет. Я проверил, что M.DOM определен и доступен в обоих кодах. Каждый тест, который я попробовал просто приводит к ошибке:Обнаружить «Ошибка: объект не поддерживает это свойство или метод»

Error: Object doesn't support this property or method

Я попытался:

  • IsEmpty(M.DOM.IPt)
  • M.DOM.IPt is Nothing
  • isNull(M.DOM.IPt)

Есть ли способ, чтобы обнаружить переменная не определена и избегает ошибки?

Примечание: я могу положить On Error Resume Next, и он просто проигнорирует ошибку, но мне действительно нужно ее обнаружить и условно что-то сделать.

ответ

1
 
    Function SupportsMember(object, memberName) 
     On Error Resume Next 

     Dim x 
     Eval("x = object."+memberName) 

     If Err = 438 Then 
     SupportsMember = False 
     Else 
     SupportsMember = True 
     End If 

     On Error Goto 0 'clears error 
    End Function 
0

Вы пробовали On Error Goto?

+0

Это не поддерживается в VBScript - только On Error Resume Next – 2008-10-30 17:41:14

+0

Ну, что и On Error Goto 0. – EBGreen 2008-10-30 18:19:34

1
On Error Resume Next 
Err.Clear 
MyVariable=M.DOM.Ipt 
If Err.Number<> 0 Then 
    'error occured - Ipt not defined 
    'do your processing here 
Else 
    'no error - Ipt is defined 
    'do your processing here 
End If