Предупреждение компилятора (уровень 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
}
}