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 に答える