C 函式宣告後面加throw 的作用

2021-10-08 13:58:31 字數 754 閱讀 6864

問題描述:

c++裡面為什麼有時候在函式宣告的時候在後面加throw()關鍵字?

解釋:c++函式後面加關鍵字throw(something)限制,是對這個函式的異常安全作出限制;這是一種異常規範,只會出現在宣告函式時,表示這個函式可能丟擲任何型別的異常。

void fun() throw(); //表示fun函式不允許丟擲任何異常,即fun函式是異常安全的。

void fun() throw(…); //表示fun函式可以丟擲任何形式的異常。

void fun() throw(exceptiontype); // 表示fun函式只能丟擲exceptiontype型別的異常。

舉例說明:

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()函式,退出程式。

void gettag() throw(); 假如你加乙個throw()屬性到你的永遠不會丟擲異常的函式中,編譯器會非常聰明的知道**的意圖和決定優化方式。

謝謝閱讀

在函式宣告後面加throw是什麼概念?

在函式宣告後面加throw是什麼概念?virtual double distance distance,individual throw nilexception 0 virtual bool equals individual throw nilexception double getobject...

c 函式宣告後加const

類的成員函式中,有一些是不改變類的成員變數的,也就是說,這些函式是 唯讀 函式。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。其實,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值,則編譯器按錯誤處理。實際上,const成員函式還有...

函式宣告後面的const用法

void function const 通常我們會看到一些函式宣告後面會跟著乙個const,這個const是做什麼的呢?看一下下面的例子,就知道了。直接在編譯前,就會提示下面的兩個錯誤 test1107.cpp 定義控制台應用程式的入口點。include stdafx.h include using...