VB程序员博客
VB程序开发
调用一个类模块的函数时,如果这个函数用Err.Raise抛出异常,但上层的函数捕捉不到这个异常,会直接把程序搞死.
比如这种:
Private Sub Form_Load()
Set c = New Class1
On Error GoTo errH
c.fc
Exit Sub
errH:
MsgBox "Err handle in Form_Load OK"
End Sub
'其中fc()里面抛出一个异常:
Public Sub fc()
Err.Raise 53
End Sub
但就好像On error goto errH 没起作用一样
该怎么解决啊?
请确认抛错误的函数 fc 在 Class1 中
Public Sub fc()
Err.Raise 53
End Sub
上面这段代码如果在Class1中
那么你的处理就完全没问题
当fc的Err.Raise起作用时,会在客户端得到更新的Err对象
那么就会GOTo errH
除非你把Fc()函数写在客户端了,那就没办法了,这样你的c.Fc()根本就执行不通了
BS1楼
1楼不是做广告?是在做俯卧撑?
抛出是这样抛出的吗?
直接抛出一个事件吧。
比如Error事件。
另外还得看你fc()里面抛的这个异常是正常提示还是真正的VB运行时错误
若为正常提示可以这样Err.Raise,
若是运行时错误,则得Err.Raise Err.Number,Err.Description等等,这样来抛