我有点困惑如何处理我正在编写的VB .net应用程序中的错误。
这就是我所拥有的:
Private Sub Func1()
Try
'stuff that could raise an error
Catch ex As Exception
MsgBox("There is an error" & ex)
End
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Func1()
'a lot of stuff that will also raise an error is Func1 does
End Sub
如果出现错误,此代码将退出应用程序。
如果我删除"结束",它将继续并在Sub Button1_click中引发多个错误。
所以我需要在Func1中添加一些可以中断执行Sub Button1_click的内容。
我可以放置Exit Sub,但是我有很多使用这个Func1的Subs,所以我更喜欢用Func1做的方法。
答案 0 :(得分:1)
如果您不希望继续执行Button1_Click,如果Func1失败,则将Func1更改为布尔函数
Private Function Func1() As Boolean
Try
'stuff that could raise an error
Return True
Catch ex As Exception
MsgBox("There is an error" & ex)
return False
End Try
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
if Func1() = True Then
'a lot of stuff that will also raise an error is Func1 does
End If
End Sub
答案 1 :(得分:0)
如果您只想向用户展示文字,请不要在如此低的级别捕获异常。
在Application.ThreadException
和/或AppDomain.UnhandledException
个活动中安装处理程序,并在那里进行MsgBox
调用。
如果您这样做,则Try
中根本不需要Catch
/ Func1
块,如果发生异常,则{{1}的剩余部分并且Func1
不要跑。