《Effective C++讀書筆記》--條款08:別讓異常逃離析構函數

在C++中不禁止析構函數拋出異常,但這是不推薦的行爲,比如一個vector<Widget> v,當v被銷燬時,其中的所有widget都會被銷燬,也就會調用它們的析構函數,但如果在析構函數中拋出異常,則會同時出現多個同時作用的異常(每銷燬一個widget拋出一個異常),則會導致程序UB。對於這種情況,有一種方法就是在析構函數中處理該異常,但這並不是一個好方法。對此我們可以重新設置一個接口,將處理異常的責任從析構函數轉移到客戶的手上。

對於該條款的主要內容就和標題一樣:別讓異常逃離析構函數。

發佈了73 篇原創文章 · 獲贊 15 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章