查看: 512  |  回复: 0
  VB6 看On Error在主程序,子程序出错也能检查出来吗?On Error GoTo 0的意思和例子。
楼主
发表于 2023年11月15日 15:55

On Error是有用的错误提示语法,它可以放在程序开头,下面列举了嵌套到2次的子程序s_2,看是否有效?

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Sub Command1_Click()
    On Error GoTo hErr
    Call s_1
hErr:
    MsgBox "错误号:" & Err.Number & vbCrLf & Err.Description, vbCritical, "错误"
End Sub

Private Sub s_1()
    Call s_2
End Sub

Private Sub s_2()
    MsgBox 3 / 0
End Sub

Private Sub Command2_Click()
    On Error GoTo mark1
    If 1 = 1 Then
        On Error Resume Next
    End If
    Debug.Print 1 / 0
    Exit Sub
mark1:
    Debug.Print "over"
End Sub

Private Sub Command3_Click()
    On Error Resume Next
    On Error GoTo 0 '让出错继续提示出错
    Debug.Print 1 / 0
End Sub

Command1运行结果:

错误号:11
除数为零    16 错误

看来是有效的。毕竟Command1_Click还可能调用很多子程序。

Command2运行结果:

(空的)

证明了最近的On Error Resume Next已经让On Error GoTo mark1无效了。

Command3运行结果:

提示出错,看来On Error GoTo 0 会让出错继续提示出错。

所以可以配合使用:

On Error Resume Next
Debug.Print 1 / 0
On Error GoTo 0


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com