C++ Primer 5th笔记(chap 18 大型程序工具)函数 try 语句块与构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 18 大型程序工具)函数 try 语句块与构造函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 問題
構(gòu)造函數(shù)在進入函數(shù)體之前首先執(zhí)行初始化列表。因為在初始值列表拋出異常時構(gòu)造函數(shù)體內(nèi)的try語句塊還未生效
1.1 解決方法
{// 這是處理構(gòu)造函數(shù)初始值錯誤的唯一方法template <typename T> Blob<T>::Blob(initializer_list<T> il) try :data(make_shared<vector<T>>(il)) {// 空函數(shù)體} catch (const bad_alloc &e) {handle_out_of_memory(e);}// 關(guān)鍵字try出現(xiàn)在// 表示構(gòu)造函數(shù)初始值列表的冒號// 以及表示構(gòu)造函數(shù)體的擴闊好// 之前// 與之歌try關(guān)聯(lián)的catch既可以處理函數(shù)體也可以處理初始化列表// 注意,在初始化構(gòu)造函數(shù)的參數(shù)時,也可能會發(fā)生異常// 這樣的異常不屬于函數(shù)try語句塊的一部分// 而是屬于調(diào)用表達式的一部分,并將在調(diào)用者所在的上下文中處理。 }總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 18 大型程序工具)函数 try 语句块与构造函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha