Compartilhar via


set_unexpected (CRT)

Instala sua própria função de finalização deve 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 encerramento anterior registrada por _set_unexpected para que a função anterior pode ser restaurada posteriormente. Se nenhuma função anterior tiver sido conjunto, o valor retornado pode ser usado restauração o comportamento padrão; esse valor pode ser nulo.

Comentários

The set_unexpected instalações de função unexpFunction função de chamada por unexpected. unexpected não é usado na implementação corrente de manipulação de exceções do C++. The unexpected_function tipo EH.H está definido sistema autônomo um ponteiro para uma função inesperado definida pelo usuário, unexpFunction que retorna void. Seu personalizado unexpFunction função não deve retornar para seu chamador.

typedef void ( *unexpected_function )( );

Por padrão, unexpected chamadas terminate. Você pode alterar esse comportamento padrão escrever sua própria função de encerramento e chamando set_unexpected com o nome da sua função sistema autônomo seu argumento. unexpected chama a função última fornecida sistema autônomo um argumento para set_unexpected.

Diferentemente da função de término personalizados instalada por uma telefonar para set_terminate, pode ser lançada uma exceção de dentro unexpFunction.

Em um ambiente de multithreaded inesperadas funções são mantidas separadamente para cada thread.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 Microsoft corrente de manipulação de exceção de C++, unexpected chamadas terminate Por padrão e nunca é chamado pela biblioteca de time de execução de tratamento de exceção. Não há nenhuma vantagem particular chamada unexpected em vez de terminate.

Há um único set_unexpected manipulador para todos os vinculados dinamicamente DLLs ou EXEs; mesmo se você chamar set_unexpected o manipulador pode ser substituído por outro ou que você está substituindo um manipulador definida por outra DLL ou EXE.

Requisitos

Rotina

Cabeçalho necessário

set_unexpected

<eh.h>

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

Equivalente do NET Framework

Não aplicável. Para telefonar 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

anular

_get_unexpected

set_terminate (CRT)

terminar (CRT)

inesperado (CRT)