在Visual Studio 2017中的未处理exception后启用编辑
如何在Visual Studio 2017中出现未处理的exception后继续执行?
在2015版及更低版本中,通过单击“ Enable Editing
”可轻松完成此操作,该“ Enable Editing
”将“调用堆栈展开到exception之前的点”。 然后可以编辑执行点,变量和代码。
当库抛出exception时,此选项消失:
"".Substring(1);
如果用户代码中发生exception,它仍然有效:
int x = 0; Console.WriteLine(1 / x);
注意可以拖动的黄色箭头。
我真的希望这个function没有被删除,因为挽救一个崩溃的程序(这里,通过设置x = 1
,例如,更改字符串常量或跳过有问题的行)是我做了很多事情。 现在我在这种状态下完成了99%的多小时操作,我真的很想通过抑制一个不重要的错误来拯救它。
这是.NET 4.6.1上的Visual Studio 2017 build 26228。
在VS2017中,隐藏并自动触发旧的“启用编辑”。 在调试时,如果我执行以下操作,我可以在未处理的exception之后编辑代码/变量:
- 单击文档以关注新的Exception Helper
- 点击空格键(或您最喜欢的键!)
要么
- 拖动黄色箭头(库的绿色箭头)。
在按键或移动箭头之前,文件选项卡上有挂锁,告诉您它已被编辑锁定。 之后,锁定被移除,就像旧的“启用编辑”function一样。 删除编辑锁的第一次击键没有输入到文件中,之后,编辑代码和变量的行为与以前一样。
我比以前更喜欢显式的“启用编辑”链接,希望他们把它带回来。
一次又一次地遇到这个问题,自从我切换到2017年以来,我终于找到了这个问题,并发现它实际上适用于“我的代码”中的exception。 谢谢你教育我!
但我也想知道它是否也不适用于“绿色箭头”,它现在实际上有效! 我正在运行15.2,所以如果它对你不起作用,也许尝试升级到最新版本。
您可以让应用程序不向调试器发送exception:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
在VS 2017中为我工作。