Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"fortsätt" : hoppa ut ur __finally/slutligen blockera har odefinierat beteende under avslutningshantering
Anmärkningar
Kompilatorn påträffade något av följande nyckelord:
orsakar ett hopp ut ur en __finally- eller finally-block under onormal avslutning.
Om ett undantag inträffar och medan stacken ångras under körningen av avslutningshanterarna (som __finally eller ett finally-block) och koden hoppar ur ett __finally-block innan __finally-blocket avslutas, är beteendet odefinierat. Kontrollen kanske inte återgår till avspolningskoden, så undantaget kanske inte hanteras korrekt.
Om du måste hoppa ut ur ett __finally block, kontrollerar du om det finns en onormal avslutning först.
Kompileringsalternativet (Aktivera ytterligare säkerhetskontroller) höjer varningen till ett fel./sdl
Example
I följande exempel genereras C4532; ta bort eller kommentera ut hoppinstruktionerna för att lösa varningarna.
// 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;
}
}
}