Partager via


Avertissement du compilateur (niveau 4) C4702

Mise à jour : novembre 2007

Message d'erreur

impossible d'atteindre le code
unreachable code

Cet avertissement résulte de la mise en conformité de Visual Studio .NET 2003 : code inaccessible. Lorsque le compilateur (back end) détecte un code inaccessible, il génère C4702, avertissement de niveau 4.

Pour produire un code valide dans les versions Visual Studio .NET 2003 et Visual Studio .NET de Visual C++, retirez le code inaccessible ou assurez-vous que tout le code source est accessible par un flux d'exécution.

Pour plus d'informations, consultez Récapitulatif des modifications sans rupture au moment de la compilation.

Exemple

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

// C4702.cpp
// compile with: /W4
#include <stdio.h>

int main() {
   return 1;
   printf_s("I won't print.\n");   // C4702 unreachable
}

Lors de la compilation avec /GX, /EHc, /EHsc ou /EHac et de l'utilisation de fonctions extern C, le code peut devenir inaccessible, car ces dernières sont censées ne pas lever d'exception ; par conséquent, le bloc catch n'est pas accessible. S'il vous semble que cet avertissement n'est pas valide parce qu'une fonction peut lever une exception, compilez avec /EHa ou /EHs, selon l'exception levée.

Pour plus d'informations, consultez /EH (Modèle de gestion des exceptions).

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

// C4702b.cpp
// compile with: /W4 /EHsc
#include <iostream>

using namespace std;
extern "C" __declspec(dllexport) void Function2(){}

int main() {
   try {
      Function2();
   }
   catch (...) {
      cout << "Exp: Function2!" << endl;   // C4702
   }
}