真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++中的異常淺析

   我們都知道,無論是在C語言中還是C++的編程調(diào)試中,我們都會(huì)遇到各種各樣的錯(cuò)誤,那么在遇到這些錯(cuò)誤的時(shí)候我們要怎么處理它們呢?

成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。成都創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。

這里有一些傳統(tǒng)的處理錯(cuò)誤的方法:

 ①終止錯(cuò)誤

 ②返回錯(cuò)誤碼

 ③返回合法值,讓程序處于某種錯(cuò)誤狀態(tài),

 ④調(diào)用一個(gè)預(yù)先設(shè)置好的處理錯(cuò)誤的函數(shù)--->(回調(diào)函數(shù))

    為了更好地處理這一類問題,在C++中提出了異常,當(dāng)函數(shù)出現(xiàn)一個(gè)自己無法處理的錯(cuò)誤時(shí),就會(huì)拋出異常,讓函數(shù)的調(diào)用者直接或間接的來處理這個(gè)問題。

來舉一個(gè)例子:

例1:

C++中的異常淺析

對(duì)于函數(shù)div來說,程序沒有一種機(jī)制來處理當(dāng)num2為零時(shí)的情況,所以我們可以通過拋出異常來解決這個(gè)問題

C++中的異常淺析注意:當(dāng)throw出異常的時(shí)候,后面括號(hào)里的參數(shù)一定要和catch后面括號(hào)里的數(shù)據(jù)類型匹配

例2:下面再來舉一個(gè)例子C++中的異常淺析

C++中的異常淺析

   從上面的代碼可以看出,由于一旦拋出異常,就要進(jìn)行捕獲,所以在拋出異常的同時(shí)也不可避免的影響了代碼的執(zhí)行流,也就是代碼不一定就順序執(zhí)行了,因此在拋出異常之前,如果有malloc或new開辟的空間時(shí),一定要在執(zhí)行流改變之前將其釋放,否則就會(huì)出現(xiàn)內(nèi)存泄漏的問題。

通過以上兩個(gè)例子,我想大家一定能夠?qū)Ξ惓S幸欢ǖ牧私饬税?,下面我來?duì)異常做幾點(diǎn)總結(jié):

 ①異常是通過拋出對(duì)象引發(fā)的,該對(duì)象的類型取決了激活哪一類的異常

 ②被選中的異常處理代碼是調(diào)用鏈中拋出對(duì)象類型相同的最近一個(gè)開始的

 ③拋出異常會(huì)釋放局部存儲(chǔ)對(duì)象,被拋出的對(duì)象也還給了系統(tǒng),異常對(duì)象在catch處理后也還給了系統(tǒng)

Tips:

異常捕獲的匹配規(guī)則

1.允許非const到const的轉(zhuǎn)換,也就是const可以接受匹配非const

2.允許派生類型到基類的轉(zhuǎn)換(父類的指針或引用可以指向或引用一個(gè)子類,將其作為接受的類型)

3.將數(shù)組轉(zhuǎn)換為一個(gè)指向數(shù)組類型的指針,將函數(shù)轉(zhuǎn)換為函數(shù)指針類型


注意事項(xiàng)

一般不要在析構(gòu)函數(shù)或構(gòu)造函數(shù)中拋出異常


網(wǎng)站名稱:C++中的異常淺析
鏈接URL:http://weahome.cn/article/jccdss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部