作者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
→ yoco315:人家就是有 catch 處理阿 -_-" 05/07 02:01
→ dcleft:你說vector有catch exception ? 我試的結果好像沒有 05/07 10:40