C 函式後面加throw關鍵字簡記

2022-07-29 12:09:09 字數 855 閱讀 9060

看**時候看到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 代表什麼意思呢?它是函式提供者和使用者的一種君子協定,標明該函式不丟擲...