Bagikan melalui


Compiler Warning (level 4) C4702

kode yang tidak dapat dijangkau

Ketika back end kompilator mendeteksi kode yang tidak dapat dijangkau, itu menghasilkan C4702 sebagai peringatan tingkat 4.

Untuk mengatasi peringatan ini, hapus kode yang tidak dapat dijangkau atau pastikan bahwa semua kode sumber dapat dijangkau oleh beberapa alur eksekusi.

Contoh

Sampel berikut menghasilkan C4702. Untuk memperbaikinya, hapus kode yang tidak dapat dijangkau.

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

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

Kesalahan C4702 dapat terjadi di beberapa versi pengkompilasi saat Anda mengkompilasi menggunakan /GXopsi , , /EHc/EHsc, atau /EHac , dan menggunakan extern "C" fungsi. Karena pengkompilasi mengasumsikan extern "C" fungsi tidak melempar, blok tangkapan tidak dapat dijangkau. Jika Anda merasa bahwa peringatan ini tidak valid karena fungsi dapat melemparkan, mengkompilasi dengan /EHa atau /EHs, tergantung pada pengecualian yang dilemparkan.

Untuk informasi selengkapnya, lihat /EH (Model Penanganan Pengecualian).

Sampel berikut menghasilkan 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
   }
}