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;
}
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für