Derleyici Uyarısı (düzey 1) C4532
'continue' : __finally/finally bloğundan atlamanın sonlandırma işleme sırasında tanımsız davranışı var
Açıklamalar
Derleyici aşağıdaki anahtar sözcüklerden biriyle karşılaştı:
anormal sonlandırma sırasında bir __finally
veya finally
bloğundan atlamaya neden olur.
Bir özel durum oluşursa ve sonlandırma işleyicileri (__finally
veya son bloklar) yürütülürken yığın çözülürken ve blok bitmeden önce __finally
kodunuz bir __finally
bloktan atlarsa, davranış tanımlanmamış olur. Denetim, geri sarma koduna dönemeyebilir, bu nedenle özel durum düzgün işlenmeyebilir.
Bir __finally
bloktan atlamanız gerekiyorsa, önce anormal sonlandırma olup olmadığını denetleyin.
/sdl
(Ek Güvenlik Denetimlerini Etkinleştir) derleyici seçeneği bu uyarıyı bir hataya yükseltir.
Örnek
Aşağıdaki örnek C4532 oluşturur; uyarıları çözmek için atlama deyimlerini silin veya açıklama satırı ekleyin.
// 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;
}
}
}