Visual Studio不会破坏用户未处理的异常

时间:2013-06-06 19:33:02

标签: debugging exception visual-studio-2012 ide

在Visual Studio中运行我的应用程序时,它以未处理的异常结束,而不是显示带有异常信息的消息框,并按照我习惯的方式继续。

我需要更改哪些选项才能恢复到我以前的行为?

编辑:在调试/例外中我确实为CLR例外选择了用户未处理的选项。

12 个答案:

答案 0 :(得分:31)

公共语言运行时异常

Debug->Exceptions->Check Thrown/User-Unhandled

编辑:也许尝试进行清理/重建,然后再次运行?也许调试符号已损坏或其他东西..

答案 1 :(得分:24)

对于visual studio 2015:

1.打开例外设置窗口(2015年新增) open Exception settings window (it's new in 2015)

2.检查所有CLR例外 enter image description here

3.如果您不需要visual studio抛出特定的异常,请取消选中此项 enter image description here

答案 2 :(得分:20)

根据应用程序的不同,以下选项可能对您有所帮助:

工具→选项...→调试→常规

  • 当异常跨越AppDomain或托管/本地边界(仅限托管)时中断
  • 启用例外助手
    • 在未处理的例外情况下展开调用堆栈
  • 取消选中 启用我的代码←JMC可以阻止您捕获不属于您和/或缺少符号的代码中的异常。

答案 3 :(得分:16)

就我而言,当我去 Debug - > 异常 User-unhandled 列丢失了。转到调试 - > 选项和设置并启用启用我的代码修复此问题,从而完全解决了这个问题。

答案 4 :(得分:4)

这为我解决了这个问题:快速lauch(Ctrl-Q)类型“ResetToC#”(或ResetTo别的东西)

我长期遇到同样的问题。在Debug-> Exceptions菜单中,缺少“User-unhandled”列!非常讨厌。

我卸载了所有插件,重新安装了VS,但没有任何效果(Visual Studio可能在我的机器上留下了一些重新安装后重复使用的设置)。

这可能看起来不是最好的解决方案,因为必须在某个地方进行某些设置。我找不到它,并且在几个月无法打破用户未处理的异常之后,ResetToC#选项是一种解脱。

答案 5 :(得分:3)

我在一个非常大的C#项目中在Visual Studio 2013中遇到了同样的问题。但是,如果我创建了一个新的空项目并抛出了一个测试ApplicationException,那么一切都会按预期工作,调试器会中断并给我异常助手。在我现有的项目上执行相同操作只会停止调试并返回到VS编辑模式。我注意到"输出"窗口,最后一个调试跟踪将显示

  

该程序' [2624] MyApplication.vshost.exe'退出了代码   -1073741819(0xc0000005)'访问违规'。

我真的没有把所有东西都复制到一个新项目中,上面没有任何建议对我有用。通过反复试验,我找到了一些有效的方法:取消选中"在未处理的例外情况下展开调用堆栈"在选项>下调试>一般>启用例外助手

顺便说一下,如果我通过异常助手手动强制调用堆栈在同一个C#项目上展开(通过单击"启用编辑"链接),调试器就会关闭,我可以&#39 ; t编辑并继续。但是在一个新项目中,它可以放松,编辑并继续工作就好了!所以我的项目确实存在一些VS不喜欢的东西,但我现在将其作为一种可接受的解决方法。

答案 6 :(得分:2)

唯一对我有用的是:

工具 - >导入和导出设置 - >重置所有设置,然后重置为C#。

答案 7 :(得分:1)

如果将鼠标悬停在断点上,并且看到“未加载任何符号警告”,

enter image description here

您可能需要将解决方案配置从“发布”更改为“调试”。

enter image description here

答案 8 :(得分:0)

将目标平台从x64更改为x86帮助我

答案 9 :(得分:0)

如果解决方案中有多个Web站点项目,请检查要调试的项目是否处于活动状态。右键单击它并选择设置为启动项目

这让我感到困惑,因为没有明显的暗示错误的网站正在被调试。

答案 10 :(得分:0)

对我唯一有用的是取消选中“使用新的异常帮助程序”。让它捕获异常,停止程序,启用“使用新的异常帮助器”,然后VS2019神奇地开始再次捕获未处理的异常。

我在VS 2019中仍然找不到“用户未处理”的地方,但至少现在可以使用。

答案 11 :(得分:0)

我在这里尝试了很多建议,但最终对我来说,切换 x86/x64 帮助我解决了 VS 调试器终止而没有任何错误或异常的问题。

Screenshot