有什么方法能使VisualStudio C++输出错误有用吗? 我发现在C++项目中,VS19的输出非常没用。考虑在新安装的VS19:上运行示例代码 #include <iostream> using namespace std; class My { public: void f() noexcept { throw exception{"A problem sir!"}; } }; int main() { try { My m; m.f(); } catch (exception& ex) { cout << "exception caught! " << ex.what() << endl; } return 0; }

有什么方法能使VisualStudio C++输出错误有用吗? 我发现在C++项目中,VS19的输出非常没用。考虑在新安装的VS19:上运行示例代码 #include <iostream> using namespace std; class My { public: void f() noexcept { throw exception{"A problem sir!"}; } }; int main() { try { My m; m.f(); } catch (exception& ex) { cout << "exception caught! " << ex.what() << endl; } return 0; },c++,visual-studio,visual-studio-debugging,C++,Visual Studio,Visual Studio Debugging,我希望收到的是:函数在标记为noexcept时抛出异常,并且光标设置在有问题的行上。我得到的是一个包含一些常规文本的新窗口,其中没有一个提到问题,或者问题在哪里。您指定了什么编译器警告级别?如果使用/W0选项,则没有诊断,但使用任何其他值/W1到/W4,编译器输出以下行: 1>filename.cpp(9,1): warning C4297: 'My::f': function assumed not to throw an exception but does 1>filenam

我希望收到的是:函数在标记为noexcept时抛出异常,并且光标设置在有问题的行上。我得到的是一个包含一些常规文本的新窗口,其中没有一个提到问题,或者问题在哪里。

您指定了什么编译器警告级别?如果使用/W0选项,则没有诊断,但使用任何其他值/W1到/W4,编译器输出以下行:

1>filename.cpp(9,1): warning C4297:  'My::f': function assumed not to throw an exception but does
1>filename.cpp(9,1): message :  __declspec(nothrow), throw(), noexcept(true), or noexcept was specified on the function

注意:诊断消息包括行号和列号。如果双击错误消息,它会将光标移到有问题的行。

MSBuild的详细参数可能太高。进入菜单:工具->选项。然后在左窗格中选择:项目和解决方案->构建并运行。
在这里,您可以选择适当的MSBuild详细信息,从“安静”到“诊断”

尝试解决您的问题:

我得到的是一个新窗口,其中包含一些常规文本,但没有一个 提到问题,或者问题在哪里

我发现90%的产出对我来说毫无用处

我想你的意思是,它总是用来显示构建过程的输出

此外,您还可以编写自己的应用程序,以便在运行时将诊断消息写入输出窗格。为此,请在.NET Framework类库的命名空间中使用或的成员

对于那些拥有大量资源文件的大型解决方案或大型项目。构建有时会因未知错误而失败。输出窗口对于故障排除是必需的

如果您认为它的大部分信息都是无用的,就像p.PICARD建议的那样:Go Tools=>Projects and Solutions=>Build and Run来设置它的构建输出详细性!不构建日志文件详细信息我建议您将其更改为最小值

如果您有一个失败的构建,并且希望查看整个构建过程的详细信息。将其更改为“详细”并重建项目或解决方案

我希望收到的是:函数在 标记为noexcept,光标设置在有问题的行上

你检查过房间了吗?如果它消失了,请选择“查看>错误列表”,或按Ctrl++E

在代码示例中添加两行:

int main()
{
    int a = 2;
    int b;
...
}
导航到错误列表窗口我建议您将其设置为Build and Intellisense:

我想这是你想要的。“错误列表”窗口还指示未初始化或未引用以改进编码的变量

此外,你可以看到他们的行号。然后双击错误消息,光标将导航到该行

对于C++程序,警告级别为W0到W4,可以设置W4以获得高警告级别。默认情况下,应该是W3

右键单击project=>properties=>Configuration properties=>C/C++=>Warning Level来设置它。已经被Blastfurance描述过了,多亏了他


将其更改为w0,不显示任何内容。将其更改为w3,它将显示有关My::f和b的警告,但不会显示a。事实上,我认为您不会对此进行更改,因为w3在默认情况下将其更改为w4,然后将显示高警告级别和所有相关的警告。

带有一些常规文本的新窗口什么文本?在什么方面是一般性的?谢谢,这很有帮助。我从另一个IDE转移过来,那里的问题以一种用户友好的方式显示在我面前:显示错误列表窗口让我感到困惑。关键信息窗口,我必须通过菜单打开它才能找到问题所在?但我该评判谁呢,至少有一个办法:多谢!很高兴知道这有帮助。祝您有个美好的一天: