Compartilhar via


Tratamento de exceção no Visual C++

Uma exceção é uma condição de erro, possivelmente fora de controle do programa, o que impede que o programa continuar ao longo de seu caminho de execução regular.Certas operações, incluindo a criação do objeto, arquivo de entrada/saída e chamadas de função feitas a partir de outros módulos, são todas as fontes potenciais de exceções, mesmo quando o programa é executado corretamente.Um código robusto antecipa e manipula as exceções.

Para detectar erros de lógica dentro de um único programa ou módulo, use o asserções em vez de exceções (consulte Usando declarações).

Visual C++ oferece suporte a três tipos de manipulação de exceção:

  • Manipulação de exceção do C++

    Para a maioria dos programas do C++, você deve usar manipulação de exceções do C++, que é fortemente tipadas e garante que esse objeto destrutores são chamados durante o desenrolamento de pilha.

  • Manipulação de exceção estruturada

    O Windows fornece seu próprio mecanismo de exceção, chamado SEH.Não é recomendável para programação C++ ou MFC.Use o SEH somente em programas não - MFC C.

  • Exceções do MFC

    Desde a versão 3.0, o MFC usou as exceções do C++, mas ainda oferece suporte a sua macros, que são semelhantes às exceções do C++ no formulário de manipulação de exceção mais antiga.Embora essas macros não são recomendadas para programação de nova, eles ainda são suportados para compatibilidade com versões anteriores.Em programas que já usam as macros, você poderá usar livremente as exceções do C++ também.Durante o pré-processamento, as macros avaliam a palavras-chave definidas na implementação do Visual C++ da linguagem C++ como do Visual C++ versão 2.0 de manipulação de exceção.Você pode deixar o macros existentes de exceção no lugar enquanto você começa a usar as exceções do C++.

Use o /EH opção de compilador para especificar o tipo de tratamento de exceção para usar em um projeto; Manipulação de exceções do C++ é o padrão.Não misture mecanismos; de manipulação de erros Por exemplo, não use as exceções do C++ com SEH.Para obter conselhos sobre como fazer mixagem macros MFC e as exceções do C++, consulte exceções: usando Macros do MFC e as exceções do C++.

Para obter informações sobre o tratamento de exceções em aplicativos do CLR, consulte Em /clr de manipulação de exceção.

Para obter informações sobre a manipulação de exceção em processadores x64, consulte Exceção manipulação (64).

Consulte também

Outros recursos

Referência de linguagem C++