Avviso del compilatore (livello 4) C4702

Aggiornamento: novembre 2007

Messaggio di errore

codice non eseguibile
unreachable code

Questo avviso è il risultato delle operazioni di conformità effettuate per Visual Studio .NET 2003: codice non eseguibile. Quando il compilatore (back end) rileva codice non eseguibile, genera l'avviso C4702 di livello 4.

Affinché il codice sia valido in entrambe le versioni Visual Studio .NET 2003 e Visual Studio .NET di Visual C++, rimuovere il codice non eseguibile o assicurarsi che tutto il codice sorgente sia eseguibile tramite un flusso di esecuzione.

Per ulteriori informazioni, vedere Riepilogo delle ultime modifiche in fase di compilazione.

Esempio

Nell'esempio seguente viene generato l'errore C4702:

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

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

Quando si esegue la compilazione con /GX, /EHc, /EHsc o /EHac e si utilizzano le funzioni C esterne, è possibile che il codice diventi non eseguibile, dal momento che si suppone che le funzioni C esterne non generino eccezioni. Il blocco catch, pertanto, non è eseguibile. Se si ritiene che l'avviso non sia valido perché una funzione è in grado di generare un'eccezione, eseguire la compilazione con /EHa o /EHs, a seconda dell'eccezione generata.

Per ulteriori informazioni, vedere /EH (Modello di gestione delle eccezioni).

Nell'esempio seguente viene generato l'errore 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
   }
}