Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) C4532

"pokračovat": skok z __finally/finally bloku má nedefinované chování při ukončení zpracování

Kompilátor narazil na jednu z následujících klíčových slov:

Příčinou přeskakování z __finally nebo nakonec během abnormálního ukončení bloku.

Pokud dojde k výjimce a je jsou odděleny zásobníku během spuštění obslužné rutiny ukončení ( __finally nebo nakonec blokuje), a váš kód přejde z __finally bloku před __finally blok končí, chování není definován.Ovládací prvek nemusí vrátit kód unwinding tak nemusí správně zpracovat výjimku.

Pokud je nutné přejít mimo __finally bloku, nejprve zkontrolujte abnormálního ukončení.

Následující ukázka generuje C4532; jednoduše komentáře odkazů příkazy k řešení 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;
      }
   }
}