VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 软件工程篇-理解错误处理代理
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9472, 日期:2000-10-21
软件工程篇-理解错误处理代理

作 者 : 甘冀平




   当使用On Error GoTo语句,并且错误发生时,VB进入了例外模式。GoTo所在行假设为一个错误处理代理的开始。如果在错误处理代理中又发生错误,程序就停止运行了!

   你需要做的就是离开错误处理代理并假设程序正常运行,然后就可以使用On Error建立一个新的错误处理代理。使用Resume语句完成这个功能,比如,使用“Resume 行标号”让程序在指定的行继续运行。

   不幸的是,在错误处理代理外执行Resume会产生一个错误,因此你就不可以按照你想要的方式在代码中放置错误处理代理。你需要跳出错误处理代理并使用Resume返回来。

   下面的程序描述了2个错误处理代理:

    Private Sub Command1_Click()
    Dim i As Integer

        On Error GoTo Error1
        i = 1 / 0   注释: Divide by zero.
    Error1Resume:
        On Error GoTo Error2
        i = 1000000 注释: Too big--overflow.
    Error2Resume:
        MsgBox "Finishing."
        注释: Do not fall through into the error handlers!
        Exit Sub

    Error1:
        注释: Resume ends error handler mode.
        MsgBox "First error handler."
        Resume Error1Resume
    Error2:
        注释: Resume ends error handler mode.
        MsgBox "Second error handler."
        Resume Error2Resume
    End Sub