现在遇到了这样的问题Private Sub Command1_Click()
On Error GoTo Cancel
Err.Raise 2049, , "错!"
Exit Sub
Cancel: MsgBox Err.Description
End Sub
这个地方是会跳转的,此时表示我已截获此错误Private Sub Command1_Click()
On Error GoTo Cancel abc
Exit Sub
Cancel: MsgBox Err.Description
End Sub其中abc是在model1里面的public sub
Option ExplicitPublic Sub abc()
Err.Raise 12456, , "大错!"
End Sub此处也能正常截获 大错 这个错误但是当我新建一个class1Option ExplicitPrivate mvarAge As Long '局部复制
Public Property Let Age(ByVal vData As Long) mvarAge = vData
If mvarAge < 0 Then
Err.Raise 12345, , "特大的错"
End If
End Property
Public Property Get Age() As Long Age = mvarAge
End Property再调用按钮的时候
Private Sub Command1_Click()
Dim x As New Class1
On Error GoTo Cancel
x.Age = -2
Exit Sub
Cancel: MsgBox Err.Description
End Sub此 “特大的错” 不能被截获,而是产生了一个实时错误 “特大的错” 这样我的程序当场就崩溃了
如果能截获此特大的错,应该如何处理?
如果不能,而我类里面确实需要这个异常,我应该怎么办?必须在类里面处理吗?在外部不能截获?
On Error GoTo Cancel
Err.Raise 2049, , "错!"
Exit Sub
Cancel: MsgBox Err.Description
End Sub
这个地方是会跳转的,此时表示我已截获此错误Private Sub Command1_Click()
On Error GoTo Cancel abc
Exit Sub
Cancel: MsgBox Err.Description
End Sub其中abc是在model1里面的public sub
Option ExplicitPublic Sub abc()
Err.Raise 12456, , "大错!"
End Sub此处也能正常截获 大错 这个错误但是当我新建一个class1Option ExplicitPrivate mvarAge As Long '局部复制
Public Property Let Age(ByVal vData As Long) mvarAge = vData
If mvarAge < 0 Then
Err.Raise 12345, , "特大的错"
End If
End Property
Public Property Get Age() As Long Age = mvarAge
End Property再调用按钮的时候
Private Sub Command1_Click()
Dim x As New Class1
On Error GoTo Cancel
x.Age = -2
Exit Sub
Cancel: MsgBox Err.Description
End Sub此 “特大的错” 不能被截获,而是产生了一个实时错误 “特大的错” 这样我的程序当场就崩溃了
如果能截获此特大的错,应该如何处理?
如果不能,而我类里面确实需要这个异常,我应该怎么办?必须在类里面处理吗?在外部不能截获?
在“选项(Options)”对话框里选“通用(General)”选项卡,在“错误捕获(Error Trapping)”框里选中“遇到未处理的错误时中断(Break on Unhandled Errors)”,而不是“在类模块中中断(Break in Class Module)”。
在代码窗口的右键菜单“切换(Toggle)”项里也可以设置。