我有VB6应用程序,我想在其中放入一些好的错误处理功能,它可以告诉我错误是什么,确切地点发生时,有人可以建议这样做的好方法
基本上,我试图理解Visual Basic 6.0 IDE中以下路径中出现的"Break in Class Module"和"Break on Unhandled Errors"之间的区别:
Tools --> Options --> General --> Error Trapping
Run Code Online (Sandbox Code Playgroud)
这三个选项似乎是:
- 打破所有错误
- 打破课堂模块
- 打破未处理的错误
现在,显然,根据MSDN,第二个选项(Break in Class Module)实际上只是意味着"打破类模块中未处理的错误".此外,此选项似乎默认设置(即:我认为它设置为开箱即用).
我想弄清楚的是,如果我选择了第二个选项,我是否可以免费获得第三个选项(Break on Unhandled Errors)?那么,它是否默认包含在类模块频谱之外的所有场景中?建议,我目前活跃的项目中没有任何类模块.我有.bas模块.另外,是否有可能通过Class Mdules他们可能也指正常的.bas模块?(这是我的第二个子问题).
基本上,我只是希望设置确保exe释放后不会有任何意外.我希望在开发时尽可能多地显示错误,并且在处于释放模式时不显示.通常,我的表单上有两种类型的On Error Resume Next,没有明确的错误处理,它们如下:
在错误恢复接下来'必须在错误恢复接下来'不是必需的
所需要的是,检查一个数组是否有任何长度,如果调用它的UBound错误,这意味着它没有长度,如果它返回值0或更多,那么它确实有长度(因此,存在).即使在我开发过程中,这些类型的错误语句也需要保持活动状态.但是,在我开发的过程中,不需要的那些不应该保持活动状态,因此我将它们全部注释掉以确保我能够捕获所有存在的错误.
一旦我准备好释放exe,我会按CTRL + H查找所有出现的:
'错误继续下一步'不需要
(您可能已经注意到它们被注释掉了)......并将它们替换为:
On Error Resume Next'不需要
...未注释的版本,因此在发布模式下,如果有任何剩余错误,它们不会向用户显示.
有关MSDN对三个选项的描述的更多信息(我已阅读两次但仍然找不到),您可以访问以下链接:
我也有兴趣听你的想法,如果你想做志愿者(这将是我的暂定/完全可选的第三个子问题,那就是你对后备错误处理技术的想法).
总结一下,前两个问题是,如果我们选择选项2,我们是否将选项3包含在所有非类场景中?而且,当他们使用术语"类模块"时,它们可能也指的是.bas模块吗?(因为.bad模块实际上只是一个在启动期间在后台预先实例化的类模块).
谢谢.
vb6 error-handling compiler-errors compiler-options visual-studio