C# 在Visual Studio中调试期间,如何停止所有异常的执行?

C# 在Visual Studio中调试期间,如何停止所有异常的执行?,c#,visual-studio-2008,build,C#,Visual Studio 2008,Build,在我的代码中,我目前有一个异常处理设置,它将异常记录到文本文件中。然而,当我调试代码时,我宁愿不处理异常并让执行停止,也不愿意读取文件、设置断点等。有没有一种简单的方法可以使用构建和发布配置来完成这项工作(比如我可以使用预处理器指令注释掉一些异常处理代码) 事实证明,有一个比最初提出的问题更好的解决方案,请参见第一个答案。尝试以下方法: if ( System.Diagnostics.Debugger.IsAttached ) System.Diagnostics.Debugger.Br

在我的代码中,我目前有一个异常处理设置,它将异常记录到文本文件中。然而,当我调试代码时,我宁愿不处理异常并让执行停止,也不愿意读取文件、设置断点等。有没有一种简单的方法可以使用构建和发布配置来完成这项工作(比如我可以使用预处理器指令注释掉一些异常处理代码)


事实证明,有一个比最初提出的问题更好的解决方案,请参见第一个答案。

尝试以下方法:

if ( System.Diagnostics.Debugger.IsAttached )
    System.Diagnostics.Debugger.Break();
else 
    LogException(); 
C#确实(例如,如果、定义等)可用于此目的


但是,您也可以在Visual Studio中修改“调试->异常…”下的设置,以便每次抛出异常时(在执行转到catch块之前),调试器都会中断设置。

我不太愿意使用预处理器指令。我可以想象,您希望能够轻松地应用于整个解决方案,而不是将预处理器指令粘在代码上

在前面的答案中,乔尔的答案是好的。但是,您可以通过转到Debug/Exceptions并确保选中“公共语言运行时异常”行中的复选框来完成相同的任务。默认情况下,通常选择“未处理的用户”

看看这个:

“调试>异常…”是一个巧妙的技巧。您可能希望将问题标题更改为“如何在异常时中断?”或“如何跳过异常处理?”。
#if DEBUG
// Something
#else
// Something else
#endif