我有一个带有引发错误的方法的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显示其标准消息框,我可以进入调试模式或结束程序。
为什么会这样?我能预防吗?
答案 0 :(得分:5)
在VB IDE中,转到“工具”,“选项”,“常规”选项卡,“错误捕获”框。我猜你把它设置为'Break on All Errors',而你可能想要'打破未处理的错误'。
您的Err.Raise
语句给我一个编译错误;尝试去除大括号。
另外,您可能想要使用
Err.Raise vbObjectError + 12345, Description:="Error message"
即。从VB常量vbObjectError中偏移您的错误代码,以确保不会发生冲突。
答案 1 :(得分:1)
您还可以通过右键单击代码窗口来更改错误捕获选项。 “切换”子菜单提供以下选项:
打破所有错误
打破课堂模块
打破未处理的错误
我发现这比弹出选项对话框要容易得多......