C 學習筆記 異常的基本語法

2021-07-10 07:22:02 字數 2938 閱讀 2938

1)若有異常 則通過throw 操作 建立乙個異常物件 並丟擲。

2)將可能丟擲異常的程式段嵌在try塊之中。控制通過正常的順序執行到達try語句。然後執行try塊內的保護段

3)如果在保護段執行期間沒有引起異常,那麼跟在try塊後的catch子句就不執行。程式從try塊後跟隨的最後乙個catch子句後面的語句繼續執行下去

4)catch子句按其在try塊後出現的順序被檢查。匹配的catch子句將捕獲並處理異常(或繼續丟擲異常)

5)如果匹配的處理器未找到,則執行函式terminate將被自動呼叫,其預設功能是呼叫abort終止程式

6)處理不了的異常,可以在catch的最後乙個分支,使用throw語法,向上扔

// 異常的基本語法.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include using namespace std;

void divide(int x,int y)

cout << "divide結果:" << x / y << endl;

2.棧解旋

執行throw語句後,相當於 return ,但是不是,會呼叫析構函式 釋放掉棧空間

// 異常_棧解旋.cpp : 定義控制台應用程式的入口點。

3.異常的介面宣告

1)為了加強程式的可讀性,可以在函式宣告中列出可能丟擲的所有異常累成,例如:

void func() throw(a,b,c,d);//這個函式func()能夠且只能丟擲型別a b c d及其子型別的異常

2)如果在函式宣告中沒有包含異常介面宣告,則該函式可以丟擲任何型別的異常,例如:

void func();

3)乙個不丟擲任何型別異常的函式可以宣告為:

void func() throw();

4)如果乙個函式丟擲了它的異常介面宣告所不允許丟擲的異常,unexpercted函式會被呼叫,該函式預設行為呼叫terminate函式終止程式。

4.異常變數的宣告週期

// 異常_棧解旋.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include using namespace std;

class badsrctype

badsrctype(const badsrctype &obj)

~badsrctype()

};class baddestype

baddestype(const baddestype &obj)

~baddestype()

};class badprotype

badprotype(const badprotype &obj)

~badprotype()

};void my_strcpy(char *to,char *from)

if (to == null)

if (*from=='a')

while (*from!='\0')

*to = '\0';

}int main()

; try

//結論1:如果接收異常的時候使用異常變數 則進行拷貝構造異常變數

catch (badsrctype e)

catch (baddestype e)

catch (badprotype e)

catch (...)

//方式二:用引用接收異常

//結論二:使用引用的話 會使用throw時候的那個物件

//catch (badsrctype &e)

//catch (baddestype &e)

//catch (badprotype &e)

//catch (...)

//方式三:用指標來接

//結論三:指標可以和引用/元素 寫在一塊,但是元素和引用不能寫在一塊

//catch (badsrctype *e)

//catch (baddestype *e)

//catch (badprotype *e)

//catch (...)

//結論:最適合的方法是用引用來接

return 0;

}

方式一:

方式二:

方式三:

C 異常基本語法

define crt secure no warnings includeusing namespace std class myexception class person person int mydivide int a int b return a b void test01 catch i...

C 學習筆記1 基本語法

在 c 中,有些識別符號在 的上下文中有特殊的意義,如 get 和 set,這些被稱為上下文關鍵字 contextual keywords 下表列出了 c 中的保留關鍵字 reserved keywords 和上下文關鍵字 contextual keywords 保留關鍵字 abstract asb...

C 學習筆記(1)基本語法

1.簡介 優點 缺點 2.程式結構 注意點 3.基本語法 4.資料型別 引用型別 不包含儲存再變數中的實際資料,但包含對變數的引用,指的是乙個記憶體位置 動態型別 與物件型別相似,型別檢查在執行時發生 字串型別 system.string 類的別名,從object類派生。使用者引用型別 class ...