error-handling - 为什么类中的错误仅在运行时捕获?

标签 error-handling vb6 ide

我有一个VB6类,其方法引发错误:

Public Sub DoSomething
  ...
  err.Raise 12345, description:="Error message"
  ...
End Sub

从以下形式调用此方法:
Public Sub ErrTest()
  On Error Goto err1
  obj.DoSomething
  Exit Sub
err1:
  MsgBox err.Description
End Sub

这在运行时效果很好,但是在设计时错误处理不起作用。相反,VB6 IDE会显示其标准消息框,从中可以进入 Debug模式或结束程序。

为什么会这样?我可以预防吗?

最佳答案

在VB IDE中,转到“工具”,“选项”,“常规”选项卡,“错误捕获”框架。我猜您将其设置为“打破所有错误”,而您可能想要“打破未处理的错误”。

您的Err.Raise语句为我提供了一个编译错误;尝试去掉牙套。

另外,您可能想使用

Err.Raise vbObjectError + 12345, Description:="Error message"

即从VB常量vbObjectError偏移您的错误代码,以确保不会发生冲突。

关于error-handling - 为什么类中的错误仅在运行时捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336665/

相关文章:

vb6 - Visual Basic 6 窗体

string - 在 Visual Basic 6 中,如何删除字符串的第一个字符?

java - 如何在没有 IDE 的情况下编译 Java 代码?

javascript - Node.js:如何检查错误?

python - 没有名为 'tweetProcesser' 的模块

flex3 - 如何在Flex 3中通过HTTP请求传递错误信息?

haskell - 错误类型类的使用

api - VB6 API 声明路径

visual-studio - Visual Studio - 选择带连字符的单词

c# - 为什么这个 Visual Studio 计时器组件在设计时工作?