作者dcleft (正经的)
看板C_and_CPP
标题[问题] Effective C++ 3/e item 8
时间Wed May 6 22:30:59 2009
在 prevemnt exceptions from leaving destructors 条例中有谈到一个例子
class Widget {
public :
~Widget(){ throw some error; }
} ;
void f(){
vector<Widget> v;
}
书中有谈到,如果v中有10个Widgets,当v被解构後,
第1个Widget丢出异常时,其他9个仍会被回收,但如果第2个Widget被回收时
也丢出异常,在两个异常同时存在的情况下,程式会结束或导致不明确行为。
============================
我想问的是,当第1个Widget丢出异常,程式不是就会自动结束了吗?
怎麽其他9个还能被回收?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.91.181
1F:→ yoco315:人家就是有 catch 处理阿 -_-" 05/07 02:01
2F:→ dcleft:你说vector有catch exception ? 我试的结果好像没有 05/07 10:40