嗯,我一直在阅读this文章,讨论如何避免异常处理的错误,似乎不错,但有一点我坚持了澄清,他这样说它是很好的参照抛出一个异常对象
当引发异常并且控制从try块传递到 处理程序时,C++运行时调用自try块开始以来构造的所有自动对象 的析构函数。
而一个它似乎表明,通过引用在catch得到抛出的对象的另一点是,因为它避免存储管理和复制好的做法,似乎什么奇怪,我是
try
{
Object o;
//make error..
throw ref(o);
}catch(Object & p)
{
//do some handle..
}
有什么比较时说这将是很好的去与上面的代码并不是所有的对象内部构建的尝试展开,当它达到抛出或它会放松后捕捉?
扔价值。抓住参考。 –
什么?从参考文献:“错误#6:不按价值抛出异常”, –