Поделиться через


Предупреждение компилятора (уровень 4) C4702

Обновлен: Ноябрь 2007

Сообщение об ошибке

Недостижимый код
unreachable code

Это предупреждение является результатом работы согласованности компилятора, выполненной для Visual Studio .NET 2003: недостижимый код. Когда компилятор (серверный) обнаруживает недостижимый код, он выдает предупреждение C4702 (уровень 4).

Для кода, действительного как Visual Studio .NET 2003, так и для версий Visual C++ для Visual Studio .NET, удалите недостижимый код или обеспечьте достижимость всего кода для определенного потока выполнения.

Дополнительные сведения см. в разделе Сводная информация о критических изменениях, которые могут приводить к ошибкам компиляции.

Пример

Следующий пример приводит к возникновению ошибки C4702.

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

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

При компилировании с /GX, /EHc, /EHsc или /EHac при использовании внешних функций языка C код может оказаться недостижимым из-за того, что внешние функции языка C считаются недоступными, и поэтому блок catch недостижим. Если вам кажется, что предупреждение недействительно по причине доступности функции, компилируйте с /EHa or /EHs, в зависимости от конкретного исключения.

Дополнительные сведения см. в разделе Параметр /EH (модель обработки исключений).

Следующий пример приводит к возникновению ошибки 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
   }
}