用户退出vb.net应用程序,没有任何异常

时间:2012-07-31 17:16:10

标签: vb.net event-viewer

用户报告他们退出应用程序没有任何错误,我在事件查看器中有很多这样的错误:

  

EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4   system.drawing,P5 2.0.0.0,P6 4333aeaf,P7 17e,P8 20,P9    system.argumentexception ,P10 NIL。

     

EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4   microsoft.visualbasic,P5 8.0.0.0,P6 4333d6d8,P7 5e,P8 1e1,P9   34ssps20bdj3nj0wmit5kamzhvglfzcc,P10无。

     

EventType clr20r3,P1 main.exe,P2 1.0.0.0,P3 4f6b05ad,P4   microsoft.visualbasic,P5 8.0.0.0,P6 4333d6d8,P7 85,P8 a2,P9    system.componentmodel.win32 ,P10 NIL。

我们在Windows Server 2003上安装了终端服务器,一天中我有大约500个错误。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

看起来你得到了一些未处理的异常。如果.NET应用程序遇到未被Try / Catch块捕获的异常,并且没有调试器来显示它,则应用程序将终止。

添加一些异常处理和日志记录到您的应用程序,以便您可以查看异常的所有详细信息。我建议在显示或记录时使用异常对象的ToString方法,因为这将显示异常及其所有内部异常的异常类型,消息和堆栈跟踪。一旦掌握了这些信息,就应该更容易确定出现了什么问题以及如何解决它。

要添加异常处理,如果您使用的是VB的应用程序框架,请转到项目属性页面的“应用程序”选项卡,然后单击“查看应用程序事件”按钮。在MyApplication类中,为UnhandledException事件添加事件处理程序,例如:

Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
    MyLog.WriteEntry(e.Exception.ToString())
End Sub

但是,如果您不使用应用程序框架,请转到应用程序的入口点(Sub Main)并在该方法的所有代码周围放置一个Try / Catch块,例如:

Public Sub Main
    Try
        ' ...
    Catch ex As Exception
        MyLog.WriteEntry(ex.ToString())
    End Try
End Sub

这些示例假设您有一个MyLog类,其中包含共享WriteEntry方法。显然,您需要在这样的类中实现自己的日志记录。

相关问题