在Visual Studio 2015中,DebuggerStepThrough不再传递异常
本文关键字:不再 异常 DebuggerStepThrough Visual Studio 2015 | 更新日期: 2023-09-27 18:05:38
在早期版本的Visual Studio中,您可以使用[DebuggerStepThrough]属性来忽略由于某些原因无法避免的特殊方法中的异常(例如网络异常或解析失败)。(参见此线程:当抛出并捕获了'时,不要在该异常处停止调试器)
现在Visual Studio显示了调用函数中没有属性的异常,即使它已经被捕获并处理了。
的例子:
static void Main(string[] args)
{
ExceptionalMethod();
}
[DebuggerStepThrough]
static void ExceptionalMethod()
{
try
{
throw new Exception("BAM");
}
catch
{ }
}
此代码在VS 2013或更低版本中不应该停止。与DebuggerHidden相同。
是否有一个新的技巧来忽略这一个异常?当然不能忽略所有的例外情况?
微软取消了该功能,原因是"调试。net代码时有益的性能改进"。
在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/