捕获错误事件

时间:2012-02-09 18:02:21

标签: vb.net

我在Visual Basic .NET 2008中创建了一些复杂的应用程序,由于它们现在处于测试阶段,人们设法经常发现一两个错误导致程序崩溃。问题是它有一个跟踪件记录当前正在使用程序的人。当用户登录时,它会记录他们当前登录的情况,如果触发了表单关闭事件,则会删除日志以显示他们已将其关闭。

现在,只要表单因错误而崩溃,我的问题就会出现,因为它不会触发close事件,因此会使日志变得不准确。我的问题是,是否有可能捕获表单以事件形式出现的任何错误?

2 个答案:

答案 0 :(得分:3)

尝试在解决方案资源管理器中双击“我的项目”。

在“应用程序”选项卡上,底部是“查看应用程序事件”按钮。点击它。

您应该看到“ApplicationEvents”文件。选择UnhandledException活动。

它应该是这样的:

Namespace My

  ' The following events are available for MyApplication:
  ' 
  ' Startup: Raised when the application starts, before the startup form is created.
  ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
  ' UnhandledException: Raised if the application encounters an unhandled exception.
  ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
  ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
  Partial Friend Class MyApplication

    Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
      // log your exception here.
    End Sub
  End Class

End Namespace

注意:此活动不会触发while a debugger is attached

答案 1 :(得分:0)

您可以围绕Try...Catch块包装代码以捕获抛出的异常。

示例:

Public Sub testProgram()

        Try

            'the code goes here

        Catch ex As Exception

            MessageBox.Show(ex.ToString)

        End Try

End Sub

实际上应该在开发阶段进行异常处理。现在这样做将是一项繁琐的工作。