Visual Studio 2013"打破处理过的异常"不工作,不打破

时间:2014-01-27 09:34:14

标签: c# asp.net exception-handling visual-studio-2013 iis-express

我正在调试iisexpress.exe上的asp.net应用程序,我已经配置了visual studio 2013以通过异常设置窗口中断用户处理的异常,但是当抛出异常时它仍然不会中断。 当我暂停执行时,我可以在Intellitrace窗口看到很多异常被抛出但是visual studio没有中断。

2 个答案:

答案 0 :(得分:10)

好的,似乎是因为在

下选择了“启用我的代码”选项
  

选项> Debugging->常规

我不知道为什么但是默认情况下会进行检查。有任何想法吗?我应该选中/取消选中吗?

答案 1 :(得分:8)

@ Navav,调试器的工作原理是,当你启用“Just My Code”时,调试器只会破坏用户代码中的First Chance Exceptions(抛出但处理)。调试器将用户代码定义为编译为“Debug”的代码,并且您具有符号文件(.pdb),或者如果程序集是由作为解决方案一部分的项目构建的。一般来说,Just My Code就是您可能想要的,就像您禁用它并打开第一次机会异常一样,即使在您无法控制的框架代码中,也会出现任何异常。另外,当它启用时,如果你没有在用户代码中捕获异常,调试器将会中断并将其视为未处理。但是,如果禁用“仅我的代码”,则只有在真正未处理的情况下才会中断异常。例如,一些框架将捕获异常,因此调试器只有在您将其切换为抛出时才会中断,因为代码中没有异常实际上未处理,它们只是“用户未处理”。