编译器警告(等级 1)C4297
“function”: 假定函数不引发异常,但确实发生了
函数包含 nothrow 声明和一个或多个 throw 语句。 若要解决 C4297,请不要尝试在用 nothrow 声明的函数中引发异常或尝试移除 nothrow 规范。
有关异常规范的更多信息,请参见 异常规范。 此外,有关如何在编译时修改异常处理行为的信息,请参见 /EH(异常处理模型)。
还为标记外部“C”的 __declspec(dllexport) 函数(即使它们是 C++ 函数)生成此警告。
下面的示例生成 C4297:
// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1() // declared nothrow
// try the following line instead
// void f1()
{
throw 1; // C4297
}