3

https://stackoverflow.com/a/338030/342740などの他の方法と同様にException Reporterを使用してみましたが、何を使用しても、自分のクラッシュ レポートの代わりに Windows クラッシュ エラー/JIT が常に表示されます。

簡単な例は、nCalc を使用して、try および catch ブロックから失敗した式を評価することです。

string formula = "10,1 * 231,2";
Expression exp = new Expression(formula);
exp.Evaluate();

基本的に、なぜ失敗するのか、それを回避するために何ができるのかわかりません。

私が使用しているテスト VM は、.Net4 がインストールされた Windows XP SP3 です。ビジュアル スタジオはなく、それ以外はクリーンな WINXPSP3 インストールです。

サンプル画像:

ここに画像の説明を入力

4

1 に答える 1

3

コメントで述べたように、あなたが見ているのは JIT とは関係ありません。これは、Windows フォームの既定のThreadExceptionハンドラーです (WPF アプリケーションには表示されません)。デフォルトでは、このダイアログは、デバッガーにアタッチされていない場合にのみ表示されます。

Mainメソッドに、次の行を追加します。

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

これにより、ハンドラーによって例外が強制的に渡され、ThreadExceptionそれらを処理して独自の例外ダイアログを表示できるようになります。詳細については、MSDN を参照してください。

于 2012-07-17T22:38:22.773 に答える