急!关于VB的错误处理
代码如下:
for i=0 to n
do something(i)
next
something(i)有一些是错误的动作,如除0等,但大部分是正确的,要正常执行
于是我改成
on error goto errhandle
for i=0 to n
do something(i)
errhandle:
next
但结果是指处理了一次错误,下面的就不出理
希望各位指点
Option Explicit
Private Sub Command1_Click()
On Error GoTo errhandle
Dim i As Integer
For i = -3 To 3
Debug.Print 9 / i '中间有个零会出错一次
Next
exit sub
errhandle:
Debug.Print Err.Description
Resume Next '这行才是关键
End Sub
Resume 语句
在错误处理程序结束后,恢复原有的运行。
语法
Resume [0]
Resume Next
Resume line
Resume 语句的语法可以具有以下任何一种形式:
语句 描述
Resume 如果错误和错误处理程序出现在同一个过程中,则从产生错误的语句恢复运行。如果错误出现在被调用的过程中,则从最近一次调用包含错误处理程序的过程的语句处恢复运行。
Resume Next 如果错误和错误处理程序出现在同一个程序中,则从紧随产生错误的语句的下个语句恢复运行。如果错误发生在被调用的过程中,则对最后一次调用包含错误处理程序的过程的语句(或 On Error Resume Next 语句),从紧随该语句之后的语句处恢复运行。
Resume line 在必要的 line 参数指定的 line 处恢复运行。line 参数是行标签或行号,必须和错误处理程序在同一个过程中。
说明
在错误处理程序之外的任何地方使用 Resume 语句都会导致错误发生。