2008-10-30 387 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 
相關問題