Bagikan melalui


Compiler Warning (level 1) C4532

'lanjutkan' : lompat keluar dari __finally/akhirnya blok memiliki perilaku yang tidak ditentukan selama penanganan penghentian

Keterangan

Pengkompilasi menemukan salah satu kata kunci berikut:

menyebabkan lompatan keluar dari atau __finally finally blok selama penghentian abnormal.

Jika pengecualian terjadi, dan saat tumpukan sedang tidak digunakan selama eksekusi penangan penghentian ( __finally atau akhirnya memblokir), dan kode Anda melompat keluar dari __finally blok sebelum __finally blok berakhir, perilaku tidak ditentukan. Kontrol mungkin tidak kembali ke kode unwinding, sehingga pengecualian mungkin tidak ditangani dengan benar.

Jika Anda harus melompat keluar dari __finally blok, periksa penghentian abnormal terlebih dahulu.

/sdl Opsi kompilator (Aktifkan Pemeriksaan Keamanan Tambahan) meningkatkan peringatan ini menjadi kesalahan.

Contoh

Sampel berikut menghasilkan C4532; hapus atau komentari pernyataan lompat untuk menyelesaikan peringatan.

// C4532.cpp
// compile with: /W1
// C4532 expected
int main() {
   int i;
   for (i = 0; i < 10; i++) {
      __try {
      } __finally {
         // Delete the following line to resolve.
         continue;
      }

      __try {
      } __finally {
         // Delete the following line to resolve.
         break;
      }
   }
}