建構子的初始化Exception
¶建構子的初始化Exception
原文連結: https://darkblack01.blogspot.com/2014/06/exception.html
移植時的最後更新日期: 2015-12-23T14:16:57.710+08:00
開門見山,以這樣的類別為例:
class foo{
int i;
char c;
public:
foo(); //建構子
};
一般來說,我們的建構子都這樣寫 foo::foo()
:i(0), c(’’){ <-- 建構初始列
}
但是,如果想在建構子上加try-catch,難道是這樣?? foo::foo()
:i(0), c(’’){ <-- 建構初始列
try{
}
catch(…){
}
}
發現了嗎?唷!不!所謂江湖一點訣!
在Primer C++中就有介紹,如果要捕捉到建構初始列上,初始化成員變數時的exception時,就一定要這樣寫
foo::foo()
try:i(0), c(’’){ <-- 建構初始列
}catch(…)
{ }
這個名稱叫「function try block」看到這,會想知道解構子怎麼處理嗎?
解構子…基本上,絕對不可以出現exception!!!
發表於
tags:
{ C_and_Cpp }