在我的析构函数中,我必须清理一些资源.假设我有三次调用以清除可能抛出的资源.因为让异常离开析构函数不好,我的设计模式应该是什么?显然,下面的方式是不可扩展的.
谢谢.
class B::~B(){ try{ clearResourceA() } catch{ try{ clearResourceB(); } catch{ clearResourceC(); } clearResourceC(); } clearResourceB(); . . }
解决方法
为什么不:
try{clearResourceA();} catch(...){} try{clearResourceB();} catch(...){} try{clearResourceC();} catch(...){}