Compilerwarnung (Stufe 1) C4297
'Funktion': Die Funktion löst eine unerwartete Ausnahme aus
Eine Funktion enthält eine nothrow-Deklaration und eine oder mehrere throw-Anweisungen. Zur Vermeidung von C4297 sollten Sie nicht versuchen, Ausnahmen in Funktionen auszulösen, die mit nothrow deklariert sind, bzw. die nothrow-Angabe zu entfernen.
Weitere Informationen zu Ausnahmespezifikationen finden Sie unter Exception Specifications. Informationen zum Ausnahmebehandlungsverhalten zur Kompilierzeit finden Sie auch unter /EH (Ausnahmebehandlungsmodell).
Diese Warnung wird auch für mit extern "C" gekennzeichnete __declspec(dllexport)-Funktionen ausgegeben, und zwar selbst dann, wenn es sich um C++-Funktionen handelt.
Im folgenden Beispiel wird C4297 generiert:
// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1() // declared nothrow
// try the following line instead
// void f1()
{
throw 1; // C4297
}