13.10 处理意外异常
优质
小牛编辑
146浏览
2023-12-01
函数 unexpected 调用 set_unexpected 函数指定的函数。如果没有用 set_unexpected 函数指定函数,则默认调用 terminate。
函数 terminate 可以显式调用,在无法捕获抛出的异常时、在异常处理期间打乱堆栈时、作为调用unexpected的默认操作时或在异常导致堆栈解退时析构函数抛出异常的情况下都会调用 terminate。
函数set_terminate可以指定调用terminate时调用的函数,否则terminate调用abort。
函数赞set_terminate和set_unexpected的函数原型分别在头文件<terminate.h)和<unexpected.h>中。
函数set_terminate和set_unexpected分别返回terminatee和unexpected调用的最后一个函数的指针。这样就使程序员可以保存函数指针,以便后面恢复。
函数set_terminate和set_unexpected取函数指针为参数。每个参数指向返回类型为void和无参数的函数。
如果用户自定义终止函数的景后一个操作不是退出程序,则执行用户自定义终止函数的其他语句之后自动调用abort函数终止程序。