執行不到的程式碼
備註
當編譯程式後端偵測到無法連線的程式代碼時,它會產生 C4702 作為層級 4 警告。
若要解決此警告,請移除無法連線的程式代碼,或確保某些執行流程可連線所有原始程式碼。
範例
下列範例會產生 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 選項 extern "C" 進行編譯並使用函式時,某些版本的編譯程式可能會發生錯誤 C4702。 因為編譯程式假設 extern "C" 函式不會擲回,因此無法連線 catch 區塊。 如果您認為此警告無效,因為函式可以根據擲回的例外狀況擲回、編譯 /EHa 或 /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
}
}