我尝试使用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安装。
示例图片:
答案 0 :(得分:3)
正如评论中所说,你所看到的与JIT无关。它是Windows窗体默认的ThreadException
处理程序(它不会出现在WPF应用程序中)。默认情况下,只有在您未连接到调试器时才会显示此对话框。
在Main
方法中,添加以下行:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
这将强制异常通过ThreadException
处理程序传递,允许您处理它们并显示您自己的异常对话框。更多信息on MSDN。