二次错误处理

chd2001 2008-03-14 06:50:08
如下程序:
Private Sub Command1_Click()
On Error GoTo errhan
Dim i As Integer
For i = 1 To 2
If i = 1 Then
t1
Else
t2
End If
Sign:
Next

Exit Sub
errhan:
GoTo Sign
MsgBox 1
End Sub

Private Sub t1()
Dim s As String
s = Left("abcd", InStr("abcd", 123) - 1)
End Sub

Private Sub t2()
Dim s As String
s = Left("abcd", InStr("abcd", 123) - 1)
End Sub

在调用t1的时候出错,可以捕获并正常处理,但是再调用t2,出错就无法处理了
是不是因为这个错误处理还是在活动状态?
如何应对这种情况??????
急!等待中
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmd007 2008-03-14
  • 打赏
  • 举报
回复
MSDN

语句 描述
Resume 如果错误和错误处理程序出现在同一个过程中,则从产生错误的语句恢复运行。如果错误出现在被调用的过程中,则从最近一次调用包含错误处理程序的过程的语句处恢复运行。
Resume Next 如果错误和错误处理程序出现在同一个程序中,则从紧随产生错误的语句的下个语句恢复运行。如果错误发生在被调用的过程中,则对最后一次调用包含错误处理程序的过程的语句(或 On Error Resume Next 语句),从紧随该语句之后的语句处恢复运行。
Resume line 在必要的 line 参数指定的 line 处恢复运行。line 参数是行标签或行号,必须和错误处理程序在同一个过程中。
aohan 2008-03-14
  • 打赏
  • 举报
回复
错误发生后可以用err.clear清除
clear_zero 2008-03-14
  • 打赏
  • 举报
回复
试试看这个

Private Sub Command1_Click()

On Error GoTo errhan
Dim i As Integer
For i = 1 To 2
If i = 1 Then
t1
Else
t2
End If
Next
Sign:
Resume Next
Exit Sub
errhan:
GoTo Sign
MsgBox 1
End Sub

Private Sub t1()
Dim s As String
s = Left("abcd", InStr("abcd", 123) - 1)
End Sub

Private Sub t2()
Dim s As String
s = Left("abcd", InStr("abcd", 123) - 1)
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧