【问题标题】:How can I stop execution for ALL exceptions during debugging in Visual Studio?在 Visual Studio 中调试期间如何停止所有异常的执行?
【发布时间】:2010-10-30 11:04:47
【问题描述】:

在我的代码中,我目前有一个异常处理设置,可以将异常记录到文本文件中。但是,当我调试代码时,我宁愿不处理异常并让执行停止,也不愿读取文件、设置断点等。有没有一种简单的方法可以使用 Build 和 Release 配置来做到这一点(一些比如预处理指令,我可以用它来注释掉一些异常处理代码)?

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

【问题讨论】:

  • "Debug > Exceptions..." 是一个巧妙的技巧。您可能想将问题标题更改为“如何打破异常?”或“如何跳过异常处理?”。

标签: c# visual-studio-2008 build


【解决方案1】:

C# 执行 have preprocessor directives(例如 if、define 等),您可以将其用于此目的。

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

【讨论】:

    【解决方案2】:

    试试这样的:

    if ( System.Diagnostics.Debugger.IsAttached )
        System.Diagnostics.Debugger.Break();
    else 
        LogException(); 
    

    【讨论】:

      【解决方案3】:
      #if DEBUG
      // Something
      #else
      // Something else
      #endif
      

      【讨论】:

        【解决方案4】:
        【解决方案5】:

        我会犹豫是否使用预处理器指令。我想您想要一些可以轻松应用于您的整个解决方案并且在您的代码中粘贴预处理器指令的东西。

        在之前的答案中,Joel 的答案很好。但是,您可以通过转到 Debug/Exceptions 并确保选中“Common Language Runtime Exceptions”行中的复选框来完成相同的操作。默认情况下通常选择用户未处理。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多