有没有一种方法可以在Visual Basic 6.0应用程序中添加全局错误处理程序?

时间:2020-03-05 18:54:04  来源:igfitidea点击:

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

解决方案

回答

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

回答

关于错误的恢复,下一个有点接近,但是已经有一段时间了。
我们可能想查找任何警告

回答

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

回答

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

回答

我昨天发现了这个工具:

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

它是一种商业产品,可在VB6和VBA应用程序中实现全局错误处理。

它有成本,但可以完美地完成工作。我已经看到了其他工具(尽管免费)在此VB6手风琴中提供了帮助,但没有一个工具能够像"针对VB6的SimplyVB6全局错误处理程序"那样覆盖真正的全局错误处理。

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

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

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

我根本不隶属于www.everythingaccess.com,只是很高兴昨天下午找到它,我又一次关注这个问题,因为我的一位客户在我们的VB6应用程序中存在错误。我能够在昨天下午测试该工具,与www.everythingaccess.com支持交换电子邮件,并通过邮件获取评估产品。
他们的网络侧尚不允许下载VB6产品的评估版,我们必须通过电子邮件发送给他们,但他们在不到一个小时的时间内答复。