在 Visual Studio 2017 年出现未处理的异常后启用编辑

Enable editing after an unhandled exception in Visual Studio 2017

在 Visual Studio 2017 年出现未处理的异常后如何继续执行?

在 2015 版及以下版本中,只需单击 Enable Editing 即可轻松完成此操作 "unwinds the callstack to the point before the exception"。然后可以编辑执行点、变量和代码。


当库抛出异常时,此选项消失:

"".Substring(1);

如果用户代码中发生异常,它仍然有效:

int x = 0;
Console.WriteLine(1 / x);

注意可以拖动的黄色箭头。


我真的希望这个功能没有被删除,因为挽救崩溃的程序(在这里,通过设置 x = 1 例如,更改字符串常量或跳过有问题的行)是我经常做的事情。现在我有一个多小时的操作在这种状态下完成了 99%,我真的很想通过抑制一个不重要的错误来挽救它。

这是 Visual Studio 2017 build 26228 on .NET 4.6.1。

您可以让应用程序不向调试器发送异常:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);

我在 VS 2017 中工作。

运行一次又一次地陷入这个问题,自从我切换到 2017 年,我终于找到了这个问题,并发现它实际上适用于 "My Code" 的异常。感谢您在这方面对我进行教育!

但我也想知道它是否可能在 "green arrow" 上不起作用,现在它确实起作用了!我是 运行ning 15.2,所以如果它还不适合你,也许可以尝试升级到最新版本。

在 VS2017 中,旧的 "Enable Editing" 被隐藏并自动触发。在调试时,如果我执行以下操作,我可以在未处理的异常后编辑代码/变量:

  1. 在文档中单击以将焦点从新的 Exception Helper 上移开
  2. 按空格键(或您最喜欢的任意键!)

  1. 拖动黄色箭头(图书馆的绿色箭头)。

在按下某个键或移动箭头之前,文件选项卡上的挂锁告诉您它已被编辑锁定。之后,锁定就像旧的​​ "Enable Editing" 功能一样被删除。删除编辑锁的第一次击键不会输入到文件中,之后,编辑代码和变量的行为与以前一样。

我更喜欢以前的显式 "Enable Editing" link,希望他们能把它带回来。