Partilhar via


Aviso do compilador (nível 1) C4532

'continuar' : sair do bloco __finally tem um comportamento indefinido durante o processo de terminação

Observações

O compilador encontrou uma das seguintes palavras-chave:

causando um salto para fora de um bloco __finally ou finally durante uma terminação anormal.

Se ocorrer uma exceção, e enquanto a pilha estiver a ser desenrolada durante a execução dos manipuladores de terminação (os blocos __finally ou os blocos finally), e o seu código saltar de um bloco __finally antes que o bloco __finally termine, 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 tiver de sair de um __finally bloco, verifique primeiro se há uma terminação anormal.

A opção do compilador (Ativar verificações de segurança adicionais) eleva esse aviso a um erro./sdl

Example

O exemplo a seguir gera C4532; elimine 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;
      }
   }
}