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

C# 在Visual Studio 2017中出现未处理的异常后启用编辑,c#,visual-studio,visual-studio-2017,C#,Visual Studio,Visual Studio 2017,在Visual Studio 2017中发生未处理的异常后,如何继续执行 在2015版及以下版本中,通过单击“将调用堆栈展开到异常之前的点”的启用编辑可以轻松完成此操作。然后就可以编辑执行点、变量和代码了 当库引发异常时,此选项将消失: 如果用户代码中发生异常,它仍然有效: 请注意可以拖动的黄色箭头 我真的希望这项功能没有被删除,因为挽救一个崩溃的程序(在这里,通过设置x=1例如,更改字符串常量或跳过有问题的行)是我经常做的事情。现在我有一个多小时的操作99%在这种状态下完成,我真的想

在Visual Studio 2017中发生未处理的异常后,如何继续执行

在2015版及以下版本中,通过单击“将调用堆栈展开到异常之前的点”的
启用编辑可以轻松完成此操作。然后就可以编辑执行点、变量和代码了


当库引发异常时,此选项将消失:


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

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


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


这是基于.NET 4.6.1的Visual Studio 2017 build 26228。

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

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThroweException)


在VS 2017中对我有效。

我一次又一次地遇到这个问题,自从我切换到2017年,我终于找到了这个问题,并发现它实际上适用于“我的代码”中的异常。谢谢你在这方面教育我

但我也在想,它是否在“绿色箭头”上不起作用,而且现在真的起作用了!我正在运行15.2,因此如果它还不适合您,也许可以尝试升级到最新版本。

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

  • 在文档中单击以将焦点从新的异常帮助器移开
  • 点击空格键(或者你最喜欢的键!)
  • 拖动黄色箭头(绿色箭头表示库)
  • 在按下键或移动箭头之前,“文件”选项卡上有一个挂锁,告诉您它已被编辑锁定。之后,锁被移除,就像旧的“启用编辑”功能一样。删除编辑锁的第一次击键没有输入到文件中,之后,编辑代码和变量的行为与以前一样


    我更喜欢显式的“启用编辑”链接,就像以前一样,希望他们能把它带回来

    这对我来说是新的。我希望事后能为例外情况找到解决办法。不过,谢谢你的贡献。这可能会帮助其他人。@Fabi如果你想知道,我已经否决了你,因为它没有回答OPs问题,IMHO.Tools>Options>debuging>General>“在未处理的异常情况下展开调用堆栈”复选框。是的,它在VS2017中消失了,这是一个非常不方便的事实。这是一项过期的工作,VS2015中的调试器(特别是异常助手)的错误太多了。唯一真正的方法是返回。用户语音问题:新异常窗口上的“启用编辑”选项已不存在,但您似乎可以在尝试键入时立即启用编辑。我更希望这个特性是明确的,自动的东西更难解决。在vs2017 15.3.2中出现未经处理的异常后,我可以在不单击任何内容的情况下进行编辑。第一次击键后会有一些轻微的延迟,但当我将光标放在文件中的某个位置并键入时,挂锁消失,表明文件未被编辑锁定,我正在像正常一样键入文件。当库抛出时,挂锁是否也起作用?我无法移动绿色箭头。这很奇怪,我很确定我也让它在绿色箭头上工作。不过,我不能再复制它了。我不记得我尝试它的确切条件(哪种回购协议,什么样的异常,异步还是非异步),所以可能是它在有限的环境下工作。我会留意它,如果我能复制它,我会更新我的答案。为“假阳性”道歉。
    "".Substring(1);
    
    int x = 0;
    Console.WriteLine(1 / x);