退出父Sub

时间:2014-03-17 07:42:59

标签: vb.net error-handling

我有点困惑如何处理我正在编写的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做的方法。

2 个答案:

答案 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不要跑。

相关问题