1

我们开发了一个 .NET 3.5 CF 应用程序,并且由于一些 lib 代码中抛出的未处理异常,我们遇到了一些应用程序崩溃。

应用程序终止并显示标准应用程序弹出异常消息框。

有没有办法捕获所有未处理的异常?或者至少,从消息框中捕获文本。我们的大多数客户只是重新启动设备,因此我们无法查看异常消息框。

有任何想法吗?

4

2 回答 2

6

您是否添加了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);
}
于 2013-02-18T15:56:42.807 回答
0

我做的事情类似于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.
    }
  }
}

也许他可以评论我的技术是好是坏。

于 2013-02-19T14:53:17.533 回答