gpt4 book ai didi

.net - 为什么 Visual Studio 会在下一行而不是错误行中显示我的一些异常?

转载 作者:行者123 更新时间:2023-12-01 03:01:09 25 4
gpt4 key购买 nike

VS 的通常行为是以黄色显示故障线:

    int i = 1;
switch (i)
{
default:
throw new NotImplementedException(); //this will be yellow
}

然而,我经常看到错误的线条被着色,就像在这个例子中一样:
        int i = 1;
switch (i)
{
default:
if (i==1)
throw new NotImplementedException();
break; i = 1; //this line is displayed in yellow, which makes no sense
}

虽然我理解这两个片段之间的一些差异(在第一种情况下,“throw...”行是该方法的最后一个可执行行,因此不会为后面的代码生成 IL,因此它是最后一个“显示”异常的可能行),我想知道 VS 未能在第二个代码段的正确行上显示异常。

有人对这种奇怪行为的原因有任何暗示吗?尽管知道这个警告,但有时我最终会花几分钟调试错误的行。

最佳答案

如果代码已更新,但代码尚未编译(编辑和继续时经常发生),行号将关闭。我以前遇到过这种情况。这是我确定发生这种情况的原因之一。

我知道发生这种情况的另一种情况是,当您的 DLL 依赖项由于某种原因而没有重建时(Visual Studio 有时会对其 DLL 依赖项树进行 fubared),它也会在调试时突出显示错误的行。这类似于编辑并继续问题。

我能想到的另一件事是,我很少注意到 Studio 会突出显示代码将返回的行......在抛出异常并点击继续后,代码将继续在 x 行上执行..但我完全不知道如何重现它。

关于.net - 为什么 Visual Studio 会在下一行而不是错误行中显示我的一些异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com