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