我們都知道,無(wú)論是在C語(yǔ)言中還是C++的編程調(diào)試中,我們都會(huì)遇到各種各樣的錯(cuò)誤,那么在遇到這些錯(cuò)誤的時(shí)候我們要怎么處理它們呢?
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的邢臺(tái)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!這里有一些傳統(tǒng)的處理錯(cuò)誤的方法:
①終止錯(cuò)誤
②返回錯(cuò)誤碼
③返回合法值,讓程序處于某種錯(cuò)誤狀態(tài),
④調(diào)用一個(gè)預(yù)先設(shè)置好的處理錯(cuò)誤的函數(shù)--->(回調(diào)函數(shù))
為了更好地處理這一類(lèi)問(wèn)題,在C++中提出了異常,當(dāng)函數(shù)出現(xiàn)一個(gè)自己無(wú)法處理的錯(cuò)誤時(shí),就會(huì)拋出異常,讓函數(shù)的調(diào)用者直接或間接的來(lái)處理這個(gè)問(wèn)題。
來(lái)舉一個(gè)例子:
例1:
對(duì)于函數(shù)div來(lái)說(shuō),程序沒(méi)有一種機(jī)制來(lái)處理當(dāng)num2為零時(shí)的情況,所以我們可以通過(guò)拋出異常來(lái)解決這個(gè)問(wèn)題
注意:當(dāng)throw出異常的時(shí)候,后面括號(hào)里的參數(shù)一定要和catch后面括號(hào)里的數(shù)據(jù)類(lèi)型匹配
例2:下面再來(lái)舉一個(gè)例子
從上面的代碼可以看出,由于一旦拋出異常,就要進(jìn)行捕獲,所以在拋出異常的同時(shí)也不可避免的影響了代碼的執(zhí)行流,也就是代碼不一定就順序執(zhí)行了,因此在拋出異常之前,如果有malloc或new開(kāi)辟的空間時(shí),一定要在執(zhí)行流改變之前將其釋放,否則就會(huì)出現(xiàn)內(nèi)存泄漏的問(wèn)題。
通過(guò)以上兩個(gè)例子,我想大家一定能夠?qū)Ξ惓S幸欢ǖ牧私饬税?,下面我?lái)對(duì)異常做幾點(diǎn)總結(jié):
①異常是通過(guò)拋出對(duì)象引發(fā)的,該對(duì)象的類(lèi)型取決了激活哪一類(lèi)的異常
②被選中的異常處理代碼是調(diào)用鏈中拋出對(duì)象類(lèi)型相同的最近一個(gè)開(kāi)始的
③拋出異常會(huì)釋放局部存儲(chǔ)對(duì)象,被拋出的對(duì)象也還給了系統(tǒng),異常對(duì)象在catch處理后也還給了系統(tǒng)
Tips:
異常捕獲的匹配規(guī)則
1.允許非const到const的轉(zhuǎn)換,也就是const可以接受匹配非const
2.允許派生類(lèi)型到基類(lèi)的轉(zhuǎn)換(父類(lèi)的指針或引用可以指向或引用一個(gè)子類(lèi),將其作為接受的類(lèi)型)
3.將數(shù)組轉(zhuǎn)換為一個(gè)指向數(shù)組類(lèi)型的指針,將函數(shù)轉(zhuǎn)換為函數(shù)指針類(lèi)型
注意事項(xiàng)
一般不要在析構(gòu)函數(shù)或構(gòu)造函數(shù)中拋出異常
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享文章:C++中的異常淺析-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://jinyejixie.com/article10/cshpgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容