Freigeben über


Compilerwarnung (Ebene 1) C4532

"continue" : Springen aus __finally/schließlich block hat nicht definiertes Verhalten während der Beendigungsbehandlung

Hinweise

Der Compiler hat einen der folgenden Schlüsselwort (keyword) gefunden:

verursacht einen Sprung aus einem oder finally einem Block während einer __finally abnormalen Beendigung.

Wenn eine Ausnahme auftritt und während der Stapel während der Ausführung der Beendigungshandler (die __finally oder schließlich Blöcke) entwundet wird und der Code vor dem Ende des __finally Blocks aus einem __finally Block springt, wird das Verhalten nicht definiert. Die Steuerung kehrt möglicherweise nicht zum abwickelnden Code zurück, sodass die Ausnahme möglicherweise nicht ordnungsgemäß behandelt wird.

Wenn Sie aus einem Block herausspringen müssen, suchen Sie zuerst nach einer __finally abnormen Beendigung.

Die /sdl Compileroption (Zusätzliche Sicherheitsüberprüfungen aktivieren) erhöht diese Warnung auf einen Fehler.

Beispiel

Im folgenden Beispiel wird C4532 generiert; Löschen oder kommentieren Sie die Sprunganweisungen aus, um die Warnungen zu beheben.

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