Vb.net Visual Studio 2010中的例外情况

Vb.net Visual Studio 2010中的例外情况,vb.net,exception-handling,visual-studio-addins,Vb.net,Exception Handling,Visual Studio Addins,我有一个WinForms应用程序从EventHandler(例如按钮点击订阅服务器)中的代码引发异常 我有一个try..catch块,用于调用表单的ShowDialog 异常不会传播到try..catch块,但它只会在处理程序处停止,并关闭表单 1) 如何将异常传播到块 2) 在这些情况下,最佳做法是什么 这是一个新的VS 2010 AddIn probject,向导添加了一个简单的工具菜单项: Public Sub Exec(ByVal commandName As String, B

我有一个WinForms应用程序从EventHandler(例如按钮点击订阅服务器)中的代码引发异常

我有一个try..catch块,用于调用表单的ShowDialog

异常不会传播到try..catch块,但它只会在处理程序处停止,并关闭表单

1) 如何将异常传播到块

2) 在这些情况下,最佳做法是什么

这是一个新的VS 2010 AddIn probject,向导添加了一个简单的工具菜单项:

    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
表单的唯一内容是一个按钮,该按钮带有引发“newexception()”的静态处理程序


单击该按钮时,不会捕获异常。

在Windows窗体中,每个事件处理程序都需要自己的try/catch块,或者您可以尝试使用,尽管在外接程序中可能无法使用。请参见

我想避免在每个事件处理程序中都出现“尝试…”捕获,这似乎严重违反了DRY。。。(和额外的机械工作/容易出错)不幸的是,我有一个全局异常处理程序,它也不能从加载项工作。