【发布时间】:2021-08-27 02:00:47
【问题描述】:
当抛出前一个异常时从(创建/复制/移动)构造函数中抛出异常,为什么不调用std::terminate()?是不是在前一个异常被捕获之前处理前一个异常的中断,必然导致std::terminate()?
【问题讨论】:
当抛出前一个异常时从(创建/复制/移动)构造函数中抛出异常,为什么不调用std::terminate()?是不是在前一个异常被捕获之前处理前一个异常的中断,必然导致std::terminate()?
【问题讨论】:
不,只有在完成异常对象的初始化之后(并且直到完成对异常的处理程序的激活),才认为异常未被捕获。 如果异常被重新抛出,则从重新抛出的角度来看,它被认为是未被捕获的。
【讨论】: