次の方法で共有


コンパイラの警告 (レベル 1) C4297

'function' : 例外をスローしないはずだがそれをする関数。

関数に nothrow 宣言と 1 つ以上の throw ステートメントがあります。 警告 C4297 を解決するには、nothrow で宣言された関数で例外をスローしないか、または nothrow 指定を削除します。

例外の指定の詳細については、「例外の仕様」を参照してください。また、コンパイル時の例外処理動作を変更する方法については、「/EH (例外処理モデル)」も参照してください。

この警告は、extern "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
}