set_unexpected (CRT)

Instala por la función de finalización que se denomine por unexpected.

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

Parámetros

  • unexpFunction
    Puntero a una función que se escribe para reemplazar la función de unexpected .

Valor devuelto

Devuelve un puntero a la función anterior de finalización registrada por _set_unexpected para poder restaurar la función anterior más adelante.Si no se ha establecido ninguna función anterior, el valor devuelto se puede utilizar para restaurar el comportamiento predeterminado; este valor puede ser NULL.

Comentarios

La función de set_unexpected instala unexpFunction como la función llamada por unexpected.unexpected no se utiliza en la implementación actual del control de excepciones de C++.El tipo de unexpected_function se define en EH.H como puntero a una función inesperada definido por el usuario, unexpFunction que devuelve void.La función personalizada de unexpFunction no debe volver al llamador.

typedef void ( *unexpected_function )( );

de forma predeterminada, llamadas terminatede unexpected .Puede cambiar este comportamiento predeterminado escribiendo dispone de la función de finalización y llamando set_unexpected con el nombre de la función como argumento.unexpected llama a la función última especificada como argumento a set_unexpected.

A diferencia de la función personalizada de finalización instalada por una llamada a set_terminate, una excepción puede producirse dentro de unexpFunction.

En un entorno multiproceso, funciones inesperadas se mantienen por separado para cada subproceso.cada nuevo subproceso necesita instalar su propia función inesperada.Así, cada subproceso está responsable de su propia administración inesperado.

En la implementación de Microsoft actual del control de excepciones de C++, unexpected llama terminate de forma predeterminada y nunca llama la biblioteca en tiempo de ejecución de control de excepciones.No hay ninguna ventaja concreta a unexpected en lugar de terminate.

Hay solo controlador de set_unexpected para todos los archivos DLL o EXE dinámicamente vinculados; incluso si llama a set_unexpected el controlador puede reemplazar por otro o que se está reemplazando un controlador establecido por otra DLL o EXE.

Requisitos

rutina

Encabezado necesario

set_unexpected

<eh.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

Rutinas de control de excepciones

abort

_get_unexpected

set_terminate (CRT)

terminate (CRT)

unexpected (CRT)