我们开发了一个 .NET 3.5 CF 应用程序,并且由于一些 lib 代码中抛出的未处理异常,我们遇到了一些应用程序崩溃。
应用程序终止并显示标准应用程序弹出异常消息框。
有没有办法捕获所有未处理的异常?或者至少,从消息框中捕获文本。我们的大多数客户只是重新启动设备,因此我们无法查看异常消息框。
有任何想法吗?
我们开发了一个 .NET 3.5 CF 应用程序,并且由于一些 lib 代码中抛出的未处理异常,我们遇到了一些应用程序崩溃。
应用程序终止并显示标准应用程序弹出异常消息框。
有没有办法捕获所有未处理的异常?或者至少,从消息框中捕获文本。我们的大多数客户只是重新启动设备,因此我们无法查看异常消息框。
有任何想法吗?
您是否添加了UnhandledException
事件处理程序?
[MTAThread]
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
// start your app logic, etc
...
}
static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var exception = (Exception)e.ExceptionObject;
// do something with the info here - log to a file or whatever
MessageBox.Show(exception.Message);
}
我做的事情类似于ctacke所做的事情。
private static Form1 objForm;
[MTAThread]
static void Main(string[] args)
{
objForm = new Form1();
try
{
Application.Run(objForm);
} catch (Exception err) {
// do something with the info here - log to a file or whatever
MessageBox.Show(err.Message);
if ((objForm != null) && !objForm.IsDisposed)
{
// do some clean-up of your code
// (i.e. enable MS_SIPBUTTON) before application exits.
}
}
}
也许他可以评论我的技术是好是坏。