2

C#のBeginInvokeメソッドに登録できるキャッチオールハンドラーはありますか?

MainFormで起動すると、このコードが表示されます

        Application.ThreadException += new ThreadExceptionEventHandler(UIExceptionHandler);
        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);

それで十分だと思いましたが、別の形式の例外が私のアプリケーションを削除しています。どうすればこれに対処できますか?(私は本当にすべてのユーザーコントロールに行きたくありません。私は自分のtry..catchでプロキシBeginInvokeメソッドを追加しています。また、私が持っているすべてのBeginInvoke呼び出しにそれを追加したくありません....それはかなり退屈でしょうキャッチオールハンドラーの追加と比較して)。

ありがとう、ディーン

4

1 に答える 1

2

これを試して:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

これがSetUnhandledExceptionModeのMSDNです

また、これがデバッグで表示されている場合は、より意味のあるSOの質問があります(JoshLの回答)。基本的に、デフォルトは自動であり、jitDebugging構成がtrueに設定されている場合(デバッグ中の場合)、アプリケーションはキャッチではなくハンドラーにスローします。

于 2012-06-29T16:20:47.620 に答える