# std::set_unexpected

< cpp‎ | error

定义于头文件 `<exception>` |  |
std::unexpected_handler set_unexpected( std::unexpected_handler f ) throw(); |  | (C++11 前)
std::unexpected_handler set_unexpected( std::unexpected_handler f ) noexcept; |  | (C++11 起) (弃用) (C++17 中移除)

令 `f` 为全局 std::unexpected_handler 并返回先前安装的 std::unexpected_handler 。

此函数线程安全。每个到 `std::set_unexpected` 的调用同步于（见 std::memory_order ）对 `std::set_unexpected` 和 std::get_unexpected 的后继调用。 | (C++11 起)

### 参数

f | - | std::unexpected_handler 类型的指向函数指针，或空指针

### 返回值

先前安装的 unexpected_handler ，或若未安装安装则为空指针值。

### 参阅

unexpected (C++17 中移除) | 违背动态异常说明时调用的函数 (函数)
get_unexpected (C++11)(C++17 中移除) | 获得当前的 unexpected_handler (函数)
unexpected_handler (C++17 中移除) | std::unexpected 所调用的函数类型 (typedef)