关于 vb6:有没有办法在 Visual Basic 6.0 应用程序中添加全局错误处理程序?

关于 vb6:有没有办法在 Visual Basic 6.0 应用程序中添加全局错误处理程序?

Is there a way to add global error handler in a visual basic 6.0 application?

VB 6.0 没有任何全局处理程序。为了捕获运行时错误,我们需要在我们认为可能发生错误的每个方法中添加一个处理程序。但是,仍然可能会遗漏一些地方。所以,我们最终得到运行时错误。在应用程序的所有方法中添加错误处理程序,唯一的方法?


不,没有办法在 VB6 中添加全局错误处理程序。但是,您不需要在每个方法中都添加错误处理程序。您只需要在每个事件处理程序中添加一个错误处理程序。例如。每个点击事件、加载事件等


虽然错误确实向上传播,但 VB6 无法进行堆栈跟踪,因此您永远不知道哪个方法引发了错误。不幸的是,如果您需要此信息,您必须为每个方法添加一个处理程序,以便记录您所在的位置。


另外:错误确实会向上传播:如果方法 X 调用方法 Y 和 Z,则方法 X 中的单个错误处理程序将涵盖所有三个方法。


我昨天发现了这个工具:

http://www.everythingaccess.com/simplyvba-global-error-handler.htm

它是一个商业产品,可以在 VB6 和 VBA 应用程序中进行全局错误处理。

它有它的成本,但它完美地完成了它的工作。我已经看到其他工具(虽然是免费的)在这个 VB6 mangle 中有所帮助,但是没有一个可以像 "SimplyVB6 Global Error Handler for VB6" 那样涵盖真正真正的全局错误处理。

使用"SimplyVB6 Global Error Handler for VB6",无需更改任何现有代码行,也无需对代码行编号(通过插件或其他方式)。
只需启用全局错误处理(主模块中的一行代码)就可以了。

"SimplyVB6 VB6 全局错误处理程序":

  • 可以显示带有真实模块和函数名称的调用堆栈,以及显示源代码行。
  • 仅适用于 P-Code 编译的 VB6 程序。
  • 可以通过早期或晚期绑定工作(无 DLL Hell)。

我与 www.everythingaccess.com 没有任何关系,只是很高兴昨天下午找到了它,我的一个客户在我们的 VB6 应用程序中遇到了错误,因此再次考虑了这个问题。昨天下午我能够测试该工具,与 www.everythingaccess.com 支持交换电子邮件,并通过邮件获得评估产品。
他们的 web 端还不允许下载 VB6 产品的评估版,你必须给他们发电子邮件,但他们会在不到一个小时内回复。


on error resume next - 有点接近但已经有一段时间了。
您可能想查找任何警告


推荐阅读