看**時候看到fun() throw()的用法,找到一篇blog解釋很簡單,如下:
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()函式,退出程式。
函式後面加throw關鍵字
為什麼函式後面加throw關鍵字?c 函式後面加關鍵字throw something 限制,是對這個函式的異常安全性作出限制。舉例及解釋如下 void fun throw 表示fun不允許丟擲任何異常,即fun是異常安全的。void fun throw 表示fun可以丟擲任何形式的異常。void f...
C 函式宣告後面加throw 的作用
問題描述 c 裡面為什麼有時候在函式宣告的時候在後面加throw 關鍵字?解釋 c 函式後面加關鍵字throw something 限制,是對這個函式的異常安全作出限制 這是一種異常規範,只會出現在宣告函式時,表示這個函式可能丟擲任何型別的異常。void fun throw 表示fun函式不允許丟擲...
C 函式後面的throw
看智慧型指標auto ptr實現的時候發現了這麼個東東 explicit auto ptr ty ptr 0 throw0 myptr ptr 巨集 throw0 define throw0 throw 函式後面的這個throw 代表什麼意思呢?它是函式提供者和使用者的一種君子協定,標明該函式不丟擲...