set_unexpected (<exception>)

当遇到意外的异常时,建立新的unexpected_handler

unexpected_handler 
   set_unexpected( 
      unexpected_handler fnew 
   ) throw( );

参数

  • fnew
    当遇到以外时函数被调用

返回值

unexpected_handler的地址。

备注

fnew不能为空指针。

当函数抛出一个不在抛出列表的异常时,The C++ 标准要求unexpected 被调用。 当前实现不支持这个。 下面的例子调用直接unexpected,之后调用unexpected_handler

示例

// exception_set_unexpected.cpp
// compile with: /EHsc
#include <exception>
#include <iostream>

using namespace std;

void uefunction()
{
    cout << "My unhandled exception function called." << endl;
    terminate(); // this is what unexpected() calls by default
}

int main()
{
    unexpected_handler oldHandler = set_unexpected(uefunction);

    unexpected(); // library function to force calling the 
                  // current unexpected handler
}

Output

My unhandled exception function called.

要求

标头: <exception >

命名空间: std

请参见

参考

<exception>

get_unexpected