編譯器警告 (層級 1) C4297
'function' : 函式預設並不會擲回例外狀況,但卻擲回例外狀況
函式含有 Nothrow 宣告和一個或更多的 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
}