Share via


Advertencia del compilador (nivel 1) C4297

'función' : se suponía que la función no producía una excepción, pero lo hace

Una función contiene una declaración nothrow y una o varias instrucciones throw. Para resolver la advertencia C4297, no intente producir excepciones en funciones declaradas con nothrow, o quitar la especificación nothrow.

Para obtener más información sobre especificaciones de excepciones, vea Especificaciones de excepción. Vea también /EH (Modelo de control de excepciones) para obtener información sobre cómo modificar en tiempo de compilación el comportamiento del control de excepciones.

Esta advertencia también se genera para las funciones __declspec(dllexport) marcadas como extern "C", incluso aunque sean funciones de C++.

El código siguiente genera el error C4297:

// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1()   // declared nothrow
// try the following line instead
// void f1()
{
   throw 1;   // C4297
}