Compartilhar via


set_unexpected (CRT)

Instala a sua própria função de finalização para ser chamado por unexpected.

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

Parâmetros

  • unexpFunction
    Ponteiro para uma função que você escreve para substituir o unexpected função.

Valor de retorno

Retorna um ponteiro para a função de terminação anterior registrado por _set_unexpected para que a função anterior pode ser restaurada posteriormente.Se nenhuma função anterior tiver sido definida, o valor de retorno pode ser usado para restaurar o comportamento padrão; Esse valor pode ser NULL.

Comentários

O set_unexpected funcionarem instalações unexpFunction como a função de chamada unexpected.unexpectednão é usado na implementação atual de manipulação de exceção do C++.O unexpected_function tipo está definido em EH.H como um ponteiro para uma função definida pelo usuário para inesperado unexpFunction , que retorna void.Seu personalizado unexpFunction função não deve retornar para seu chamador.

typedef void ( *unexpected_function )( );

By default, unexpected calls terminate.Você pode alterar esse comportamento padrão escrever sua própria função de encerramento e chamando set_unexpected com o nome de sua função como seu argumento.unexpectedchama a função última fornecida como um argumento para set_unexpected.

Diferentemente da função de terminação personalizado instalada por uma chamada para set_terminate, uma exceção pode ser lançada a partir do unexpFunction.

Em um ambiente multithread, funções inesperadas são administradas separadamente para cada segmento.Cada novo segmento precisa instalar sua própria função inesperada.Assim, cada thread é responsável por seu próprio tratamento inesperado.

Na implementação atual de manipulação de exceção de C++, Microsoft unexpected chamadas terminate por padrão e nunca é chamado pela biblioteca de tempo de execução de tratamento de exceção.Não há nenhuma vantagem em particular a chamar unexpected em vez de terminate.

Não há um único set_unexpected manipulador para todas as DLLs ou EXEs; dinamicamente vinculados mesmo se você chamar set_unexpected o manipulador pode ser substituído por outro ou que você estiver substituindo um manipulador definida por outra DLL ou EXE.

Requisitos

Rotina

Cabeçalho necessário

set_unexpected

<eh.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Rotinas de manipulação de exceção

anulação

_get_unexpected

set_terminate (CRT)

Finalizar (CRT)

inesperado (CRT)