常见的 try,catch,throw 用法就不说了,介绍以下:

 

set_terminate

当throw的异常类型找不到适当的catch时,就会调用terminate()函数,默认的terminate函数中调用abort()函数结束程序;

可以使用set_terminate()来改变默认的terminate()函数;如:

void terminate_my ()
{
    cout << "terminate_my" << endl;
    abort();
}

int main()
{
    terminate_handler old_handle = set_terminate(terminate_my);
    throw string("123");
    return 0;
}

set_terminate()函数返回旧的terminate函数handle。

值得注意的是:

1 多线程程序中,各个terminate函数是独立的,每个线程都有其terminate函数

2 在调试器状态下不工作

3 terminate()函数中不能再抛出异常

posted on 2012-12-28 14:27  布丁嫩  阅读(394)  评论(0编辑  收藏  举报