共用方式為


編譯器警告 (層級 4) C4702

無法連線的程式碼

當編譯器後端偵測到無法連線的程式碼時,它會產生 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
   }
}