Sdílet prostřednictvím


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;
      }
   }
}