Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
"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;
}
}
}