我有一个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显示其标准消息框,从那里我可以进入调试模式或结束程序.
为什么会这样?我能预防吗?
在VB IDE中,转到"工具","选项","常规"选项卡,"错误捕获"框.我猜你把它设置为'Break on All Errors',而你可能想要'Break on Unhandled Errors'.
你的Err.Raise
陈述给我一个编译错误; 尝试删除大括号.
此外,您可能想要使用
Err.Raise vbObjectError + 12345, Description:="Error message"
即从VB常量vbObjectError中偏移您的错误代码,以确保您不会发生冲突.