VS 17打破了所有异常

时间:2017-06-27 22:14:12

标签: c# winforms visual-studio debugging visual-studio-2017

Visual Studio 2017(突然之间)打破所有异常。这意味着,如果我在例外设置中停用它们(在调试时按CTRL + ALT + E),调试器仍会中断它们。我不知道这只是VS的一个错误,我无法改变因此不得不忍受,或者有一个简单的解决方案。

这是例外设置窗口: the exception settings

这个例外VS打破了: the exception

顺便说一下,我也试过那个漂亮的减号(如果我按它就没有任何反应)或添加一个不可能的条件(VS仍然在例外情况下破坏)。

我还测试了其他异常(通过简单地抛出它们),我之前停用了它们,并且它们也被抛出,我在其他项目中测试了同样的问题,它也出现了: the issue in other projects

我实际上甚至将整个内容放入try catch语句中,但VS仍然会破坏:

InitializeComponent ();
try
{
    var t = new Thread (() =>
    {
        while (!IsHandleCreated) {} //It breaks here (similiar to the screenshots)
        while (true)
            Invoke (new Action (() => Size = new Size ()));
    });
    while (true)
    {
        t.Start ();
        Thread.Sleep (100);
        t.Abort ();
    }
}
catch (ThreadAbortException) { }

它不会出现在我的电脑上的其他IDE(如Rider)中,也不会出现在VS中的其他电脑上。它并不总是出现在我的电脑上,它刚刚开始并且只在调试模式下启动。如果我继续执行(使用F5),它就会继续正常运行。

编辑当我把try catch放在线程中时,它表现得有点不同(我很抱歉把照片放在这里,但我认为它们更具表现力那种情况): new exception location

任何人可以解释这种行为吗?

编辑 ThreadAbortExceptions在catch语句结束时再次中断似乎是正常的。但是,VS仍然不应该打破这个例外。

4 个答案:

答案 0 :(得分:2)

我遇到了类似的问题。

我通过取消选中"在异常跨越AppDomain或托管/本机边界时中断" 工具>选项>调试>常规

答案 1 :(得分:1)

我无法确认这是否与其他项目类型一起发生,但它与我一致(Visual Studio Tools for Python)VSTP。

虽然它不太令人满意,但它至少可以使例外无声并让您继续平静地工作,直到更好的解决方案浮出水面。在我的情况下,几乎不可能调试我的代码,因为StopIteration在每次迭代中都会中断。

选择调试> Windows>例外设置或按 Ctrl-Alt-E 。 ÿ

Exception Settings

右键单击窗口上的任意位置,然后选择显示列>其他行动。如果尚未显示“附加操作”列,则会显示该列。

右键单击要静音的特定异常,或单击顶级复选框以选择整个异常类别,即 Python异常。单击在用户代码中未处理时继续

对每个额外的例外或例外类别重复。

答案 2 :(得分:1)

我通过在工具>选项>调试>常规中取消选中Enable Just My Code来修复它

答案 3 :(得分:0)

我知道这有点晚了,但是ThreadAbortException与所有其他异常不同,并且需要一些特殊的处理,否则,如果您实际上没有处理它,它将自动在所有catch块的末尾重新抛出。应该处理的方式。