如何防止VS调试器在每次等待时显示异常?

时间:2018-10-29 15:14:31

标签: c# visual-studio visual-studio-2017 visual-studio-debugging

在包含多个await语句的调用堆栈中,当引发异常时,调试器将在每个await语句处继续显示错误。我想知道是否有一种方法可以让调试器仅显示引发异常的初始位置,而不会在等待时停止。

2 个答案:

答案 0 :(得分:1)

System.Diagnostics.DebuggerHidden属性如何?此属性用于在调试器中隐藏方法或属性,这也可以防止调试器拦截异常。

[System.Diagnostics.DebuggerHidden]
private static void SecretRun(IEnumerable<int> ints)
{
   foreach (var i in ints)
   {
       try
       {
           if (i < 50) Console.WriteLine("next" + i);
           else throw new Exception("some exception");
       }
       catch
       {
           // Ignored
       }
    }
}

缺点::您将无法调试带有DebuggerHidden属性标记的方法。

要使用此属性,您需要在Tools > Options > Debugging > General上选中“启用我的代码”

答案 1 :(得分:0)

我不确定您提到的内容是否有设置。但是,如果您尝试捕获/调试某个特定错误,则可以更改异常设置(ctrl + alt + E),然后勾选“公共语言运行时异常”。这将打破最初的错误。然后只需右键单击,完成后即可恢复默认设置。

enter image description here