Freigeben über


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
}