C 補充六 異常

2021-10-09 04:22:48 字數 1880 閱讀 1252

在c語言中,對於錯誤的處理有兩種方法,一是使用整型的返回表示錯誤,二是使用 errno 巨集去記錄錯誤。使用這兩種方法,會出現返回值和錯誤值相同的情況,程式無法判斷

在c++中,異常和返回值是分開處理的,函式的返回值可以忽略,但異常不可忽略,如果異常不處理,程式就會中斷。異常是可以跳級處理的。

#include

using

namespace std;

//拋出自定義型別的異常

class

myexception};

intdivision

(int a,

int b)

return a/b;

}void

test01()

catch

(int

)catch

(double

)catch

(myexception e)

catch(.

..)}

intmain()

catch(.

..)return0;

}

#include

using

namespace std;

class

myexception};

class

person

~person()

};intdivision

(int a,

int b)

return a/b;

}void

test01()

catch

(int

)catch

(double

)catch

(myexception e)

catch(.

..)}

intmain()

catch(.

..)return0;

}

函式沒有宣告異常介面,則可以丟擲所有的異常,若宣告了,只可丟擲指定型別的異常

#include

using

namespace std;

//異常介面宣告

void

fun(

)throw

(int

)//無法丟擲任何異常,預設呼叫terminate函式中斷程式

void

fun1()

throw()

intmain()

catch

(int

)catch(.

..)return0;

}

#include

using

namespace std;

class

myexception

myexception

(const myexception &a)

~myexception()

};void

fun(

)int

main()

/* catch(myexception &e)的輸出結果為

myexception建構函式

myexception拷貝建構函式

捕獲異常

myexception析構函式

myexception析構函式

catch(myexception &e)的輸出結果為

myexception建構函式

捕獲異常

myexception析構函式

*/catch

(myexception &e)

return0;

}

補充C語言,C

對於元素型別說明和引數傳遞進行整理補充 對於序號設定依舊不通,羞愧 o c語言 typedef structsqlist 順序表型別 sqlist l l.data elemtype malloc sizeof elemtype maxsize malloc m 函式 開闢m位元組長度的位址空間,並...

c 學習補充

1.在類的定義中,一般資料成員設為私有,函式成員設為共有。2.私有成員只能在類內使用,不能再類外,即宣告乙個物件後,不能用std.mame這種形式去呼叫私有成員,只能呼叫共有成員。3.我們知道建構函式是用來初始化資料成員的,但是有比他更好的,那就是初始化列表,他更快,更專業。4.類的定義就是封裝 5...

C 高階補充

點選前往 今天看到的這樣的一題,感覺還是挺有意思的,記錄下來 它給出了乙個函式,填寫以下函式完成功能 vector findmax vector num 空陣列,返回空 vector res len,1 返回結果 初始化 1,表示未找到 stack notfind 棧 num中還未找到符合條件的元素...