.net 未处理异常-如何知道是什么控件导致应用程序崩溃

.net 未处理异常-如何知道是什么控件导致应用程序崩溃,.net,vb.net,.net,Vb.net,我已经向客户交付了我的应用程序,但他们抱怨有时应用程序会崩溃,他们需要重新启动 我让他们描述一下应用程序崩溃时他们在做什么,使用了什么选项/窗口,不幸的是,他们都没能说些什么。所以我决定做一个全局未处理异常函数 我用下面的Global UnhandledExceptioncode更新了应用程序,我通过电子邮件收到了错误消息,但我现在担心的是,为了解决问题,我无法找到导致错误的控件 到目前为止,我从4个客户端收到的错误消息是索引超出了数组的范围。我能够解决这个问题,但我不确定是什么VB控件导致了这

我已经向客户交付了我的应用程序,但他们抱怨有时应用程序会崩溃,他们需要重新启动

我让他们描述一下应用程序崩溃时他们在做什么,使用了什么选项/窗口,不幸的是,他们都没能说些什么。所以我决定做一个
全局未处理异常
函数

我用下面的
Global UnhandledException
code更新了应用程序,我通过电子邮件收到了错误消息,但我现在担心的是,为了解决问题,我无法找到导致错误的控件

到目前为止,我从4个客户端收到的错误消息是
索引超出了数组的范围。
我能够解决这个问题,但我不确定是什么VB控件导致了这个问题,因为该应用程序在每个窗口上都有许多列表框和不同的控件

我只想知道是否有办法通过
(e.Exception.[control name])
找到引发错误的确切控件

下面是我的全局未处理异常代码

Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
    Try
        errorMsg = e.Exception.Message     'Store the error message in order to be sent via email to Support/Fix Departement via email

        e.ExitApplication = False

        thread = New System.Threading.Thread(AddressOf sendGlobalExcept)
        thread.Start()
    Catch

    End Try
End Sub

我建议不要只使用消息,而是发送
exception.ToString()
,因为这将包括堆栈跟踪,它将允许您查看错误发生在哪一行。谢谢stuartd。这正是我想要的。我很感激。解决了!!!顺便说一下,我的应用程序是多线程的,如上所示,并且也使用Backgroundworker。UnhandledException是否也会捕获多线程异常?“UnhandledException是否也会捕获多线程异常?”-否,它只捕获主UI线程上的异常。如果你现在知道了解决方法,把它作为一个答案贴出来并接受它。您可以注册许多全局异常处理程序(比评论中提到的要多),因此您应该通过Google仔细搜索。我建议不要只使用消息,而是发送
exception.ToString()
,因为这将包括堆栈跟踪,它将允许您查看错误发生在哪一行感谢stuartd。这正是我想要的。我很感激。解决了!!!顺便说一下,我的应用程序是多线程的,如上所示,并且也使用Backgroundworker。UnhandledException是否也会捕获多线程异常?“UnhandledException是否也会捕获多线程异常?”-否,它只捕获主UI线程上的异常。如果你现在知道了解决方法,把它作为一个答案贴出来并接受它。您可以注册许多全局异常处理程序(比评论中提到的要多),因此您应该通过Google仔细搜索。