当我的应用程序崩溃而不是我的崩溃报告时,JIT调试器总会出现

时间:2012-07-17 19:02:46

标签: c# .net-4.0 exception-handling crash-reports

我尝试使用Exception Reporter以及其他方法,例如https://stackoverflow.com/a/338030/342740,但无论我使用什么,Windows崩溃错误/ JIT始终显示而不是我自己的崩溃报告。

一个简单的例子是使用nCalc来评估try和catch块中的失败表达式。

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

基本上我不知道它为什么会失败以及我可以做些什么来解决它。

我使用的测试VM是安装了.Net4的Windows XP SP3,没有Visual Studio或其他任何东西都是干净的WINXPSP3安装。

示例图片:

enter image description here

1 个答案:

答案 0 :(得分:3)

正如评论中所说,你所看到的与JIT无关。它是Windows窗体默认的ThreadException处理程序(它不会出现在WPF应用程序中)。默认情况下,只有在您未连接到调试器时才会显示此对话框。

Main方法中,添加以下行:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

这将强制异常通过ThreadException处理程序传递,允许您处理它们并显示您自己的异常对话框。更多信息on MSDN