为什么析构函数不能抛出异常

  • 通常析构函数中会做一些内存、资源的释放操作,如果析构函数抛出异常,则在异常点之后的一些释放操作就不能执行了,导致资源泄露.

  • 可能会导致连续抛出异常,程序由于某种原因抛出异常,而异常导致析构函数的调用,析构函数如果再抛出异常,一个异常没有处理,又来一个,会造成程序崩溃的问题。

参考:《more effective C++》