看板 C_and_CPP 關於我們 聯絡資訊
在 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