Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4702

niemożliwy do osiągnięcia kod

Gdy zaplecze kompilatora wykryje niemożliwy do osiągnięcia kod, generuje kod C4702 jako ostrzeżenie poziomu 4.

Aby rozwiązać ten problem, usuń nieosiągalny kod lub upewnij się, że cały kod źródłowy jest osiągalny przez jakiś przepływ wykonywania.

Przykłady

Poniższy przykład generuje C4702. Aby rozwiązać ten problem, usuń niemożliwy do osiągnięcia kod.

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

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

Błąd C4702 może wystąpić w niektórych wersjach kompilatora podczas kompilowania przy użyciu /GXopcji , /EHc, /EHsclub /EHac i używania extern "C" funkcji. Ponieważ kompilator zakłada, extern "C" że funkcje nie są zwracane, blok catch nie jest osiągalny. Jeśli uważasz, że to ostrzeżenie nie jest prawidłowe, ponieważ funkcja może zgłaszać, kompilować z elementem /EHa lub /EHs, w zależności od zgłoszonych wyjątków.

Aby uzyskać więcej informacji, zobacz /EH (Model obsługi wyjątków).

Poniższy przykład generuje 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
   }
}