Megosztás a következőn keresztül:


Fordító figyelmeztetés (1. szint) C4532

"folytatás" : kiugrás a __finally/végül blokkból nem definiált viselkedést eredményez a megszüntetés kezelése során

Megjegyzések

A fordító a következő kulcsszavak egyikét észlelte:

rendellenes leállás során __finally vagy finally blokkból való kiugrást okoz.

Ha kivétel fordul elő, és amíg a verem feloldódik a lezáráskezelők végrehajtása során ( __finally vagy végül blokkok), és a kód kilép egy __finally blokkból a __finally blokk vége előtt, a viselkedés meghatározatlan. Előfordulhat, hogy a vezérlő nem tér vissza a feloldó kódhoz, ezért előfordulhat, hogy a kivétel nem lesz megfelelően kezelve.

Ha ki kell lépnie egy __finally blokkból, először ellenőrizze, hogy történt-e rendellenes leállás.

A /sdl (További biztonsági ellenőrzések engedélyezése) fordítóbeállítás a figyelmeztetést hibává emeli át.

Example

Az alábbi példa C4532-t hoz létre; a figyelmeztetések feloldásához törölje vagy megjegyzésbe helyezze az ugrási utasításokat.

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