【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   未找到元素 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值