常见的 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()函数中不能再抛出异常