Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"kontynuuj": wyskocz z __finally/na koniec blok ma niezdefiniowane zachowanie podczas obsługi zakończenia
Uwagi
Kompilator napotkał jedno z następujących słów kluczowych:
powoduje wyskoczenie z __finally bloku lub finally podczas nieprawidłowego zakończenia.
Jeśli wystąpi wyjątek i gdy stos jest niezwiązany podczas wykonywania procedur obsługi zakończenia (__finallybloki lub wreszcie), a kod wyskakuje z bloku przed __finally zakończeniem __finally bloku, zachowanie jest niezdefiniowane. Kontrolka może nie powrócić do kodu odwijania, więc wyjątek może nie być poprawnie obsługiwany.
Jeśli musisz wyskoczyć z __finally bloku, najpierw sprawdź nieprawidłowe zakończenie.
Opcja kompilatora /sdl (Włącz dodatkowe kontrole zabezpieczeń) podnosi to ostrzeżenie do błędu.
Przykład
Poniższy przykład generuje ostrzeżenie C4532; aby je rozwiązać, usuń lub zakomentuj instrukcje skoku.
// 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;
}
}
}