[問題] Effective C++ 3/e item 8

看板C_and_CPP (C/C++)作者 (正經的)時間16年前 (2009/05/06 22:31), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
在 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

05/07 02:01, , 1F
人家就是有 catch 處理阿 -_-"
05/07 02:01, 1F

05/07 10:40, , 2F
你說vector有catch exception ? 我試的結果好像沒有
05/07 10:40, 2F
文章代碼(AID): #1A0PyarP (C_and_CPP)
文章代碼(AID): #1A0PyarP (C_and_CPP)