我有一个WinForms应用程序从EventHandler中的代码中引发异常(E.G. a Button click subscriber);
我有一个try..catch块围绕调用Form的ShowDialog;
异常不会传播到try..catch块,但它会在处理程序停止,Form将关闭。
1)如何将异常传播到块?
2)这些案例的最佳做法是什么?
这是一个新的VS 2010 AddIn项目,向导添加了一个简单的工具菜单:
Public Sub Exec(ByVal commandName As String, ByVal executeOption As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
handled = False
If executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault Then
If commandName = "MyAddin1.Connect.MyAddin1" Then
Dim form1 = New Form1
Try
form1.ShowDialog()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
handled = True
Exit Sub
End If
End If
End Sub
Form的唯一内容是一个带有静态处理程序的按钮,引发了“New Exception()”。
单击按钮时,不会捕获异常。