Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'functie': functie verondersteld geen uitzondering te genereren, maar wel
Opmerkingen
Een functiedeclaratie bevat een (mogelijk impliciete) noexcept aanduiding, een lege throw uitzonderingsaanduiding of een kenmerk __declspec(nothrow) en de definitie bevat een of meer throw-instructies . Als u C4297 wilt oplossen, probeert u geen uitzonderingen te genereren in functies die zijn gedeclareerd __declspec(nothrow), noexcept(true) of throw(). U kunt ook de noexcept, throw()of __declspec(nothrow) specificatie verwijderen.
Standaard genereert de compiler impliciete noexcept(true) aanduidingen voor door de gebruiker gedefinieerde destructors en deallocatorfuncties en door compiler gegenereerde speciale lidfuncties. Dit voldoet aan de ISO C++11-standaard. Als u het genereren van impliciete noexcept-aanduidingen wilt voorkomen en de compiler wilt herstellen naar het niet-standaardgedrag van Visual Studio 2013, gebruikt u de optie /Zc:implicitNoexcept- compiler. Zie /Zc:implicitNoexcept (Impliciete uitzonderingsaanduidingen) voor meer informatie.
Zie Uitzonderingsspecificaties (throw) voor meer informatie over uitzonderingsspecificaties. Zie ook /EH (Exception Handling Model) voor informatie over het wijzigen van gedrag van de verwerking van uitzonderingen tijdens het compileren.
Deze waarschuwing wordt ook gegenereerd voor __declspec(dllexport)-functies die als extern C zijn gemarkeerd, zelfs als het C++-functies zijn.
Example
In het volgende voorbeeld wordt C4297 gegenereerd:
// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1() // declared nothrow
// try the following line instead
// void f1()
{
throw 1; // C4297
}