【QTP】On Error 的使用方法

啓動一個錯誤處理程序並指定該子程序在一個過程中的位置;也可用來禁止一個錯誤處理程序。

 

On Error Resume Next       '開啓錯誤處理,不彈出錯誤。

On Error Goto 0                 '關閉錯誤處理,彈出錯誤。

上一個例子:

Call myTest()
Sub myTest()
      Dim a,  b,  c
      a=78
      b=0
      On Error Resume Next
      c = a / b
      If Err.number <> 0  Then
            print "出錯了! Err.number = " & Err.number 
      End If
End Sub

不使用OnError的情況下,執行腳本會出現如下報錯:


使用了On Error後,便不會出現上圖的錯誤提示來中斷腳本運行,而是根據腳本打印出log

出錯了! Err.number = 11


在腳本的編寫中,爲了防止腳本的中斷,會使用這樣的語句。

如之前文章中ReadExcel函數中的一樣。


'【Err對象方法】
Clear:清空err對象中的所有屬性
            例:Err.Clear

Raise:定義一個運行時錯誤
            語法:Err.Raise(number,source,description,helpfile,helpcontext)
            number:用於表示錯誤號
             source:表示產生錯誤的對象或應用程序的名稱
            description:關於錯誤的描述信息
            helpfile:help文件的有效路徑
             helpcontext:help文件的主題
             例:Err.Raisevbobjecterror+1,"prjproject.clsclass","customerror","C:\help.txt",1

'【Err對象屬性】
Number(errid):返回或設置一個表示錯誤的數值
             Errid:可選。包含error的id
            例:a =Err.Number                          '返回error的id
                   Err.Number = 2                          '設置error的id

Description(string):返回或設置error的描述
             string:可選。包含error的描述星系
            例:a =err.description                     '返回error描述信息
                   Err.description = "類型不匹配"     '設置error的描述信息

Helpcontext(conid):返回或設置指定幫助信息的主題
             conid:可選。包含表示幫助文件的幫助主題
             例:a =err.Helpcontext                     '返回error幫助主題
                   Err.Helpcontext = "類型不匹配"     '設置error幫助主題

Helpfile(Filepath):返回或設置help文件的地址
            Filepath:可選。包含help文件的有效地址
             例:a =Err.Helpfile                          '返回error help地址
                   Err.Helpfile ="C:\help"             '設置error help地址

Source(string):返回或設置報告錯誤的對象(或者應用程序的名稱)
             String:可選。包含對象名或者應用程序名稱
             
例:a = Err.Source                          '返回產生error的對象或應用程序名稱
                   Err.Source ="box"                   '設置產生error的對象或應用程序名稱


'【Err.number 錯誤代碼】
錯誤代碼   信息     
  5   無效的過程調用或參數     
  6   溢出     
  7   內存不夠     
  9   下標越界     
  10   數組長度固定或臨時鎖定     
  11   被零除     
  13   類型不匹配     
  14   字符串空間溢出     
  28   堆棧空間溢出     
  35   Sub   或  Function   未定義     
  48   加載   DLL   時出錯     
  51   內部錯誤     
  53   文件未找到     
  57   設備   I/O   錯誤     
  58   文件已存在     
  61   磁盤已滿     
  67   文件太多     
  70   沒有權限     
  75   路徑/文件訪問錯誤     
  76   路徑未找到     
  91   未設置對象變量或  With   塊變量     
  92   未初始化   For   循環     
  94   無效的   Null   使用     
  322   無法創建必要的臨時文件     
  424   要求使用對象     
  429   ActiveX   部件無法創建對象     
  430   類不支持  Automation     
  432   Automation   操作過程中,未找到文件名或類名     
  438   對象不支持此屬性或方法     
  440   Automation   錯誤     
  445   對象不支持此操作     
  446   對象不支持命名的參數     
  447   對象不支持當前區域設置     
  448   未找到命名參數     
  449   此參數必選     
  450   參數個數錯誤或無效的屬性賦值     
  451   對象不是集合     
  453   未找到指定的  DLL   函數     
  455   代碼資源鎖定錯誤     
  457   此鍵已和集合中的元素關聯     
  458   VBScript.   中不支持使用  Automation   類型的變量     
  500   變量未定義     
  501   非法賦值     
  502   用此對象進行  Script.   編程會出錯     
  503   對象不能安全初始化     
  1001   內存不夠     
  1002   語法錯誤     
  1003   缺少“:”     
  1004   缺少“;”     
  1005   缺少“(”     
  1006   缺少“)”     
  1007   缺少“]”     
  1008   缺少“{”     
  1009   缺少“}”     
  1010   缺少標識符     
  1011   缺少“=”     
  1012   缺少“If”     
  1013   缺少“To”     
  1014   缺少“End”     
  1015   缺少“Function”     
  1016   缺少“Sub”     
  1017   缺少“Then”     
  1018   缺少“Wend”     
  1019   缺少“Loop”     
  1020   缺少“Next”     
  1021   缺少“Case”     
  1022   缺少“Select”     
  1023   缺少表達式     
  1024   缺少語句     
  1025   語句未結束     
  1026   缺少整型常數     
  1027   缺少“While”或“Until”     
  1028   缺少“While”、“Until”或語句結尾     
  1029   局部變量或參數過多     
  1030   標識符過長     
  1031   無效的編號     
  1032   無效的字符     
  1033   未終止字符串常數     
  1034   未終止註釋     
  1035   嵌套的註釋     
  1037   “Me”關鍵字使用無效     
  1038   “Loop”缺少“Do”     
  1039   無效的“Exit”語句     
  1040   無效的“For”循環控制變量     
  1041   名稱被重定義     
  1042   必須是行中的第一個語句     
  1043   無法爲非  ByVal   參數賦值     
  1044   調用   Sub   時不能使用括號     
  1045   缺少字母常數     
  1046   缺少“In”     
  32766   True     
  32767   False     
  32811   未找到元素 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章