有没有一种方法可以在Visual Basic 6.0应用程序中添加全局错误处理程序?
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产品的评估版,我们必须通过电子邮件发送给他们,但他们在不到一个小时的时间内答复。