為什麼函式後面加throw關鍵字?
c++函式後面加關鍵字throw(something)限制,是對這個函式的異常安全性作出限制。
舉例及解釋如下:
void fun() throw() 表示fun不允許丟擲任何異常,即fun是異常安全的。
void fun() throw(...) 表示fun可以丟擲任何形式的異常。
void fun() throw(exceptiontype) 表示fun只能丟擲exceptiontype型別的異常。
還不明白嗎?看這個解釋(乙個形象笑話):
throw() 大概會說:「噢,不管你拋什麼,就是不准拋。」
throw(...) 呵呵一笑,滿臉慈祥:「拋吧拋吧,盡情地拋吧。」
throw(type) 一聽急了:「那可不行,要拋也只能拋我的香菸頭,否則要是不小心把俺祖傳的金戒指拋掉就太虧了。」
尤其注意這是異常規範,只會出現在宣告函式中,表示這個函式可能丟擲任何型別的異常。
void gettag() throw(int); 表示只丟擲int型別異常
void gettag() throw(int,char); 表示丟擲in,char型別異常
void gettag() throw(); 表示不會丟擲任何型別異常
void gettag() throw(...); 表示丟擲任何型別異常
那麼,void gettag() throw(int); 表示只丟擲int型別異常 這句解釋怎麼理解呢?
並不表示一定會丟擲異常,但是一旦丟擲異常只會丟擲int型別。
如果丟擲非int型別異常,呼叫unexsetpion()函式,退出程式。
good good study, day day up.
順序 選擇 迴圈 總結
C 函式後面加throw關鍵字簡記
看 時候看到fun throw 的用法,找到一篇blog解釋很簡單,如下 c 函式後面加關鍵字throw something 限制,是對這個函式的異常安全性作出限制。舉例及解釋如下 void fun throw 表示fun不允許丟擲任何異常,即fun是異常安全的。void fun throw 表示f...
C 函式宣告後面加throw 的作用
問題描述 c 裡面為什麼有時候在函式宣告的時候在後面加throw 關鍵字?解釋 c 函式後面加關鍵字throw something 限制,是對這個函式的異常安全作出限制 這是一種異常規範,只會出現在宣告函式時,表示這個函式可能丟擲任何型別的異常。void fun throw 表示fun函式不允許丟擲...
函式名前加static關鍵字
1.函式名前加static關鍵字 函式就被定義成為靜態函式。函式的定義和宣告預設情況下是extern的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。定義靜態函式的好處 1 靜態函式不能被其他檔案所用。2 其他檔案中可以定義相同名字的函式,不會發生衝突。3 靜態函式會被自動分配在乙個一直...