在Visual Studio 2015中DebuggerStepThrough不再传递异常?

时间:2015-07-31 08:01:11

标签: c# visual-studio visual-studio-2015

在Visual Studio的早期版本中,您可以使用[DebuggerStepThrough]属性来忽略特殊方法中的异常,该方法由于某种原因无法避免(网络异常,例如,或者可能是解析失败)。 (见本主题:Don't stop debugger at THAT exception when it's thrown and caught

现在Visual Studio在没有属性的情况下向我显示了调用函数的异常,即使它已被捕获和处理。

示例:

    static void Main(string[] args)
    {
        ExceptionalMethod();
    }
    [DebuggerStepThrough]
    static void ExceptionalMethod()         
    {
        try
        {
            throw new Exception("BAM");
        }
        catch 
        { }
    }

此代码不应在VS 2013或更低版本中停止。与DebuggerHidden相同的行为。

是否有一个新技巧可以忽略这个例外?不忽略那种类型的所有例外吗?

1 个答案:

答案 0 :(得分:4)

由于“在调试.NET代码时提高了性能”,Microsoft已停用该功能。

在Visual Studio 2015 Update 2中,可以通过更改注册表项来关闭/提升性能。

在命令行中输入以执行此操作:

reg add HKCU\Software\Microsoft\VisualStudio\14.0_Config\Debugger\Engine /v AlwaysEnableExceptionCallbacksOutsideMyCode /t REG_DWORD /d 1

来源: https://blogs.msdn.microsoft.com/visualstudioalm/2016/02/12/using-the-debuggernonusercode-attribute-in-visual-studio-2015/