Gal*_*man 10 c++ destructor exception try-catch throw
我知道我不应该从析构函数中抛出异常.
如果我的析构函数调用一个可以抛出异常的函数,那么如果我在析构函数中捕获它并且不进一步抛出它是否可以?或者它是否会导致中止,我不应该从析构函数中调用这些函数?
jal*_*alf 19
是的,那是合法的.异常不能从析构函数中逃脱,但是在析构函数内部或它调用的函数中发生的任何事情都取决于您.
(从技术上讲,异常也可以从析构函数调用中逃脱.如果在堆栈展开期间发生这种情况,因为抛出了另一个异常,std::terminate则会调用.所以标准很好地定义了它,但这是一个非常糟糕的主意.)
| 归档时间: | 
 | 
| 查看次数: | 3523 次 | 
| 最近记录: |