Upozornění kompilátoru (úroveň 1) C4532
"continue" : přechod z bloku __finally/finally má nedefinované chování během zpracování ukončení
Poznámky
Kompilátor zjistil jedno z následujících klíčových slov:
způsobující přeskakování nebo finally
blokování během neobvyklého __finally
ukončení.
Pokud dojde k výjimce a během provádění obslužných rutin ukončení ( __finally
bloků nebo bloků) se zásobník zruší a váš kód před koncem bloku přeskočí __finally
__finally
, chování se nedefinuje. Ovládací prvek se nemusí vrátit do odvíjecího kódu, takže výjimka nemusí být zpracována správně.
Pokud musíte přeskočit z __finally
bloku, nejprve zkontrolujte neobvyklé ukončení.
Možnost kompilátoru /sdl
(Povolit další kontroly zabezpečení) zvýší toto upozornění na chybu.
Příklad
Následující ukázka generuje C4532; odstraňte nebo zakomentujte příkazy jump a vyřešte upozornění.
// 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;
}
}
}