《盟威软件快速开发平台》在线帮助中心

自动中断调试错误处理

概述

开发时对于源代码程序,如果没有加错误处理,在出错时会提示错误消息,并可以中断代码,自动进入代码界面并定位到出错的代码行,非常方便。但该功能对于分发给最终用户使用的运行版本,不再会有任何提示。

而如果加了错误处理,在运行版本中也会有提示,但是在开发时的源代码版本中,出错时自动中断并定位出错代码的功能又没有了。

对于该问题,平台从 2.5.0 版推出一个可以兼顾两者的错误处理代码方案:使用特定的错误处理代码,显示错误消息后,自动判断当前是否可以查看及编辑源代码,如果可以,则自动中断以进行调试。

常规错误处理代码:
Public Sub Test()
    On Error Goto ErrorHandler

    '具体事务处理代码略

ExitHere:
    Exit Sub

ErrorHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
    Resume ExitHere
End Sub
自动中断进行调试的错误处理代码:
Public Sub Test()
    On Error Goto ErrorHandler

    '具体事务处理代码略

ExitHere:
    Exit Sub

ErrorHandler:
    'RDPErrorHandler 函数中已经包含了通过 MsgBox 显示错误消息的功能。
    If RDPErrorHandler("Test 子过程") Then 
        Resume          '如果可以代码是可以查看及编辑的,则恢复(跳转)到出错的代码行。
    Else    
        Resume ExitHere '如果代码不可查看及编辑,则恢复(跳转)到 ExitHere 标签处,即退出子过程。
    End If
End Sub

演示示例

  1. 这里我们以用户管理中的删除功能进行演示。先故意制造一个错误,在删除按钮的事件过程代码中,将 Username 改成 Username2。

  2. 运行后窗体,点击删除按钮,会出现错误消息框。

  3. 代码会自动中断于 Debug.Assert False 语句处。

  4. 按 3 次 F8 键,即单步执行 3 次,会自动定位到 Resume 语句处,注意这里,这是一个标志位置。

  5. 再按 1 次 F8 键,会自动定位到出错的代码所在行,检查并修改出错的语句后,可以按 F5 继续运行。

修订记录

  1. 2019-07-08 2.5.0 加入