捕获应用程序崩溃事件

时间:2012-05-09 15:23:57

标签: vb.net winforms crash crash-reports

我在VB.Net上创建了一个应用程序。但有些用户在启动时会遇到崩溃。这是“一个问题导致该程序无法正常工作”只需一个按钮“关闭程序”。由于应用程序加载时会发生很多事情,是否可以知道导致问题的原因?

1 个答案:

答案 0 :(得分:5)

如果在项目的属性中启用了“应用程序框架”,请单击“应用程序”项目属性页面上的“查看应用程序事件”按钮。然后添加一个事件处理程序:

Partial Friend Class MyApplication
    Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
        ' ...
    End Sub
End Class

如果您没有使用应用程序框架,则应该在整个Main方法周围放置一个try catch块。但是,这只会捕获主线程上发生的异常。如果您的应用程序是多线程的,则可以通过创建如下方法来处理所有线程的异常:

Public Sub UnhandledExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
    ' ...
End Sub

然后将其附加到您当前域的UnhandledException事件中,如下所示:

AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionHandler

然后,无论当前线程如何,都会从域中的任何位置调用该事件处理程序以处理所有未处理的异常。