gpt4 book ai didi

visual-studio - 类模块中断与未处理错误中断(VB6 错误捕获,IDE 中的选项设置)

转载 作者:行者123 更新时间:2023-12-04 05:34:44 24 4
gpt4 key购买 nike

基本上,我试图了解出现在以下路径下的 Visual Basic 6.0 IDE 中的“Break in Class Module”和“Break on Unhandled Errors”之间的区别:

Tools --> Options --> General --> Error Trapping

这三个选项似乎是:

  • Break on All Errors
  • Break in Class Module
  • Break on Unhandled Errors


现在,显然,根据 MSDN,第二个选项(Break in Class Module)实际上只是意味着“Break on Unhandled Errors in Class Modules”。此外,此选项似乎是默认设置的(即:我认为它设置为开箱即用)。

我想弄清楚的是,如果我选择了第二个选项,我是否可以免费获得第三个选项(Break on Unhandled Errors)?在那,它是否默认包含在类模块范围之外的所有场景中?建议,我当前事件的项目中没有任何类模块。我有 .bas 模块。另外,Class Mdules 是否也有可能指的是普通的 .bas 模块? (这是我的第二个子问题)。

基本上,我只是希望设置确保一旦发布 exe 就不会出现任何意外。我希望在开发时显示尽可能多的错误,而在 Release模式下不显示。通常,我的表单上有两种类型的 On Error Resume Next,其中没有明确的错误处理,它们如下:

On Error Resume Next ' 需要
On Error Resume Next ' 不需要

需要的是,检查数组是否有任何长度,如果对其 UBound 的调用出错,这意味着它没有长度,如果它返回值 0 或更大,那么它确实有长度(因此, 存在)。即使在我开发过程中,这些类型的错误语句也需要保持活跃。但是,NOT REQUIRED 不应该在我开发时保持事件状态,因此我将它们全部注释掉以确保我捕获所有存在的错误。

一旦我准备好发布 exe,我会执行 CTRL+H 来查找所有出现的情况:

'On Error Resume Next ' NOT REQUIRED



(您可能已经注意到它们被注释掉了)......并将它们替换为:

On Error Resume Next ' NOT REQUIRED



... 未注释的版本,因此在 Release模式下,如果有任何遗留错误,它们不会显示给用户。

有关 MSDN 对三个选项的描述的更多信息(我已经阅读了两次,但仍然觉得不够),您可以访问以下链接:

http://webcache.googleusercontent.com/search?q=cache:yUQZZK2n2IYJ:support.microsoft.com/kb/129876&hl=en&lr=lang_en%7Clang_tr&gl=au&tbs=lr:lang_1en%7Clang_1tr&prmd=imvns&strip=1

如果您愿意自愿提出想法,我也很想听听您的想法(这将是我的试探性/完全可选的第三个子问题,即您对后备错误处理技术的想法)。

总结一下,前两个问题是,如果我们选择选项 2,我们是否会在所有非类场景中包含选项 3?而且,当他们使用术语“类模块”时,他们是否也可能指的是 .bas 模块? (因为 .bad 模块实际上只是一个在启动期间在后台预先实例化的类模块)。

谢谢你。

最佳答案

我将从第一个选项开始。中断所有错误只会禁用您的错误处理程序。当您在放入错误处理程序后尝试调试时,这很有用,因为您可能在处理程序本身中出现错误,或者当错误冒泡容器层次结构时,您可能会忘记错误发生的位置(错误是't 在过程中处理尝试在调用过程中查找处理程序,如果您试图查找有问题的代码行,这可能会造成混淆)。

接下来,如果有一行代码导致其中出现错误,那么在未处理的错误上中断实际上并不会在类模块中中断。如果您设置了此选项,并且您在类中调用了一个方法,并且该方法中的代码行中存在错误,那么您将在客户端中具有该方法调用的行上中断。

类模块中的中断转到有错误的类中的代码行。需要注意的是,如果您使用的是 ActiveX EXE,则控制设置在其项目中,而不是在客户端项目中。也就是说,您可以中断客户端项目中设置的所有错误,并中断您的 ActiveX EXE 项目中设置的未处理错误,并且您不会中断类模块,因为您正在使用两个单独的进程。

我个人更喜欢将其设置为中断类模块,因为它可以让我以最精确的方式深入到错误的位置。不过,这是在我开始执行错误处理程序之前;在那一点上,我通常会在所有三个方面反弹,这取决于我想要稳定的内容。

最后,我不建议永远不要使用 On Error Resume Next,除非是在内联错误处理的上下文中。

关于visual-studio - 类模块中断与未处理错误中断(VB6 错误捕获,IDE 中的选项设置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12687105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com