c++编程思想中抛出异常调用terminate函数在C++编程思想第二卷第一章1.4.3节讨论的terminate函数,书中说“在
c++编程思想中 抛出异常调用terminate函数
在C++编程思想第二卷第一章1.4.3节讨论的terminate函数,书中说“在全局对象或静态对象的构造函数或析构函数抛出异常时,将调用terminate函数”。
我不明白如果静态对象不是全局的,而是在一个函数里面,如果这个对象的构造函数抛出了异常,那么通过try块,完全可以捕获异常,这样就不会调用terminate函数了。这是我的理解,但是书上为什么说一定会调用terminate函数呢?
谢谢你的解答。
[解决办法]
我觉得他说的是类中的静态对象。这些对象在程序开始之前就构造了。如果你在函数里定义一个静态对象,try/catch是可以捕捉到的。
