检测到“错误:对象不支持此属性或方法”

时间:2008-10-30 17:09:55

标签: vbscript error-handling

我正在处理的对象在JavaScript中实例化,但在VBScript中使用。在一个代码路径中,变量M.DOM.IPt被定义并且具有值,而在另一个代码路径中则不是。我需要检测它是否已定义。我检查了M.DOM是否已在两个代码路径中定义和访问。我尝试的每个测试都会导致此错误:

  

错误:对象不支持此属性或方法

我试过了:

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

有没有办法检测变量未定义并避免错误?

注意:我可以将On Error Resume Next放入其中,它只会忽略错误,但实际上我需要检测它并有条件地对它做一些事情。

3 个答案:

答案 0 :(得分:2)

    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

答案 1 :(得分: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

答案 2 :(得分:0)

您是否尝试过On Error Goto标签?