c++ - 有什么方法可以使 Visual Studio 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;
}
我想收到的是:“函数在标记为 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
注意:诊断消息包括行号和列号。如果您双击错误消息,它会将光标移动到有问题的行。
推荐阅读
- arangodb - 在 ArangoDB AQL 中,如何从图遍历中返回顶点和边?
- .net - 为什么 VBA 的 VarType 函数说这个 COM 对象是一个字符串?(对象是 .NET 的 System.Object 类的 COM 版本的实例。)这是一个错误吗?
- python - pandas - 将两个数据框添加在一起,其中值相同
- typescript - 当父键是通用的时限制子接口的有效键
- qt - 无法打开源文件没有这样的文件或目录
- php - 根据任意开始日获取星期几的名称(不总是星期日)
- c++ - 与所有者一起分配数组的正确方法
- swift - 将 NSbutton 连接到从 Xib 加载 NSView 的方法的代码
- javascript - 如何通过 Puppeteer 获取元素的子元素
- c# - 我找不到如何将数据模型属性限制为“S”或“P”