2008-10-30 240 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

你试过错误转到标签?

+0

这不是在VBScript支持 - 仅在错误继续下一步 – 2008-10-30 17:41:14

+0

嗯,这和对错误转到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 
相关问题