【发布时间】:2016-05-25 13:30:38
【问题描述】:
我有一个适用于 Windows Mobile 6.5 的 C# 应用程序。问题是,经过大量使用时间(2-3 小时)后,有时应用程序会在 Main() 中出现“NullReferenceException”崩溃。
我的所有程序都带有 try catch,在 main 中进行测试以捕获不同的异常(ObjectDisposed、NullException 和 Exception),并且我也尝试了该事件:
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(OnUnhandledException);
应用程序在使用一段时间后仍然挂起。有没有人知道任何应用程序来监控这个崩溃,比如 Windows 中的 DebugDiag,或者一些代码可以在日志中捕获这个异常?
main函数中的代码如下:
static void Main()
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(OnUnhandledException);
try
{
CLog.EscribirEnLog("Main");
using (AppExecutionManager execMgr = new AppExecutionManager(appName))
{
if (execMgr.IsFirstInstance)
{
Application.Run(new FormInicioSesion());
CUtiles.MatarProceso("FoxitReader.exe");
CUtiles.MatarProceso("pimg.exe");
}
}
}
catch (NullReferenceException ex)
{
CLog.EscribirEnLog("ERROR Null " + ex.StackTrace);
Application.Exit();
}
catch (ObjectDisposedException e)
{
CLog.EscribirEnLog("ERROR : Excepcion en main : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString());
Application.Exit();
}
catch (Exception e)
{
CLog.EscribirEnLog("ERROR : Excepcion : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString());
Application.Exit();
}
finally
{
CLog.EscribirEnLog("Main-Finally");
}
}
【问题讨论】:
-
感谢您的回答。我知道导致 NullReferenceException 的原因以及避免它的方法,问题是我不知道问题出在哪里,这就是为什么我需要一种方法来捕获它来解决它。
-
您的方法是使用
try...catch块。你能发布你的try...catch代码是什么吗? -
我已经用代码编辑了帖子
标签: c# .net windows-mobile windows-mobile-6.5