处理运行时错误的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
On Error Resume Next
该语句之后出现 “运行时错误” 则继续运行不中断
如再想出现错误后显示错误并中断执行则再上 On Error Goto 0 即可
作用范围:
1、不会作用于被调用的函数或子程序,同样也不会作用于父级别的程序段
2、出现在某个函数中,则只对本函数产生影响。对“主调函数”和“被调函数”均没有影响
3、函数过程中出现错误,则跳出到外层调用程序,如只有有On Error Resume Next
则继续执行,没有则继续向往层跳转,直到碰到On Error Resume Next 后继续执行,如已经是最外层则中断运行。
On Error Goto 0 (和不加效果一样)
该语句后出现"运行时错误",会显示“出错信息”并停止程序执行
处理运行时错误的对象
Err对象
使用On Error Resume Next后,如果出错,Err对象中将放置最近一次出错的信息
Err对象重要的属性有三个:Number, Source, Description。分别是错误号,错误来源,错误描述。
你能捕获的都是运行时错误,而且If Err then这样的写法等价于If Err.Number then
Err对象提供的属性。
Description
设置或返回一个描述错误的字符串
Number
(缺省属性)设置或返回指定一个错误的值
Source
设置或返回产生错误的对象的名称
使用这些属性可以检查发生了哪种错误。例如,可以根据错误号采取不同的措施,也可以用Source和Description的属性值为用户提供错误信息。
下
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
给出了Err对象提供的方法。
Clear
清除当前所有的Err对象设置
Raise
产生一个运行期错误
使用Err对象生成一个“自定义错误”。
intErrNumber = vbObjectError + 1073 'custom error number
strErrDescription = "The file has been deleted or moved. "
strErrSource = " ReadThisFile function"
Err.Raise intErrNumber, strErrSource, strErrDescription
vbObjectError,以确定所选择的错误号不会和一个已存在的错误号混淆。通过把任意选择的错误号加到此常数中,就能够保证和预定义的错误不混淆。
Dim i
i = 1/0 '第一个错误
undefined_function "test" '第二个错误,函数undefined_function未定义
Response.Write Err.Description
运行结果:
类型不匹配
可以看到,提示的并不是被零除
实际应用
例如,如果需要向一个文件中写入字符串,可以通过一个独立的函数对文件进行访问,防止错误中断整个程序的运行:
'returns True if it succeeds, or False on any error
Function WriteNewFile(strFileName, strContent)
On Error Resume Next 'turn off the default error handler
WiteNewFile = Flase 'default return value of function
Set objFSO = CreateObject("scripting.FileSystemObject")
If Err.Number = 0 Then Set objFile = objFSO.CreateTextFile(strFileName,True)
If Err.Number = 0 Then objFile.WriteLine strContent
If Err.Number = 0 Then objFile.Close
If Err.Number = 0 Then WriteNewFile = True
End Function
上面的程序在处理每个程序语句之前,先检查Err对象的Number属性。如果值为0(还没有出现错误),那么就能够继续对文件的创建和写入过程。如果错误发生了,脚本引擎将设置Err对象的属性的值,并且继续处理下一行。
只要不引起错误而能正常运行,函数的返回值将设置为“True”。否则函数将返回“False”。