set_unexpected (crt)

安装拥有 unexpected将调用终止函数。

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

参数

  • unexpFunction
    对该函数的指针将替换 unexpected 功能编写。

返回值

返回指向 _set_unexpected 签入以前的终止函数,以便能够在以后恢复前面的功能。 如果以前功能未设置,则返回值可用于还原默认行为;此值可能为空。

备注

set_unexpected 功能内置 unexpFunction 作为 unexpected调用的函数。 unexpected 不使用异常处理实现的当前 C++。 unexpected_function 类型在 EH.H 为返回 void的用户定义的意外的函数的指针, unexpFunction 定义。 自定义 unexpFunction 函数不应返回到其调用方。

typedef void ( *unexpected_function )( );

默认情况下, unexpected 调用 terminate。 您可以通过编写拥有终止函数和调用与函数的名称 set_unexpected 更改此默认行为作为其参数。 unexpected 调用最后一个函数是作为参数 set_unexpected。

调用不同安装的自定义终止函数为 set_terminate,则可能会引发从 unexpFunction的内部。

在一个多线程环境中,意外的功能对每个线程分别进行维护。 每个新线程需要安装自己意外的功能。 因此,每个线程都是负责自己意外处理。

默认情况下在 C++ 异常处理的当前 Microsoft 实现, unexpected 调用 terminate 和由异常处理的运行库从不调用。 没有特定的优势。调用 unexpected 而不是 terminate。

具有全部动态链接到的 DLL 或 EXE 的单个 set_unexpected 处理程序;即使您调用 set_unexpected 处理程序可以将另一个替换或所替换另一个 DLL 或 EXE 设置的处理程序。

要求

实例

必需的头

set_unexpected

eh.h

有关其他的兼容性信息,请参见中介绍的 兼容性

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例

请参见

参考

异常处理实例

abort

_get_unexpected

set_terminate (crt)

terminate (CRT)

unexpected (CRT)