Partager via


Avertissement du compilateur (niveau 1) C4297

'fonction' : la fonction lève une exception alors qu'elle est présumée ne pas le faire

Une fonction contient une déclaration nothrow et une ou plusieurs instructions throw. Pour résoudre C4297, ne tentez pas de lever des exceptions dans les fonctions qui sont déclarées avec nothrow, ou supprimez la spécification nothrow.

Pour plus d'informations sur les spécifications d'exceptions, consultez Spécifications d'exception. Consultez également /EH (Modèle de gestion des exceptions) pour plus d'informations sur la modification du comportement de gestion des exceptions au moment de la compilation.

Cet avertissement est également généré pour les fonctions __declspec(dllexport) marquées extern "C", même s'il s'agit de fonctions C++.

L'exemple suivant génère l'erreur C4297 :

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