Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
'continue': a saída do bloco '__finally/finally' tem um comportamento indefinido durante a manipulação do encerramento
Comentários
O compilador encontrou uma das seguintes palavras-chave:
que estão causando um salto de um bloco __finally ou finally durante o encerramento anormal.
Se ocorrer uma exceção, e enquanto a pilha estiver sendo desenrolada durante a execução dos manipuladores de terminação (os blocos __finally ou finally), e o código saltar de um bloco __finally antes do fim do bloco __finally, o comportamento será indefinido. O controle pode não retornar ao código de desenrolamento, portanto, a exceção pode não ser tratada corretamente.
Se você precisar sair de um bloco __finally, verifique primeiro se há uma terminação anormal.
A opção do compilador /sdl (Habilitar Verificações de Segurança Adicionais) eleva esse aviso a um erro.
Exemplo
O exemplo a seguir gera C4532; exclua ou comente as instruções de salto para resolver os avisos.
// 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;
}
}
}