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

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

C++中怎么使用try和catch捕獲異常

這篇文章主要介紹“C++中怎么使用try和catch捕獲異?!?,在日常操作中,相信很多人在C++中怎么使用try和catch捕獲異常問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C++中怎么使用try和catch捕獲異?!钡囊苫笥兴鶐椭〗酉聛?lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

為寧德等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及寧德網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、寧德網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

異常處理

使用try和catch捕獲異常

??try和catch是最重要的C++關(guān)鍵字。要捕獲語(yǔ)句可能引發(fā)的異常,可將它們放在try塊中,并使用catch塊對(duì)try塊可能引發(fā)的異常進(jìn)行處理:

void somefunc(){    try    {        int* pNumber=new int;        *pNumber=999;        delete pNumber;    }    catch(……)  //catches all exceptions    {    cout<<"Exception in somefunc(),quitting"<

catch(……)捕獲未被其他catch塊顯示捕獲的所有異常。
自定義異常類(lèi)應(yīng)繼承std::exception,這讓你能夠重用捕獲std::exception異常的所有catch()塊 

編寫(xiě)優(yōu)秀的C++代碼

? 給變量指定(無(wú)論是對(duì)您還是其他人來(lái)說(shuō)都)有意義的名稱(chēng)。值得多花點(diǎn)時(shí)間給變量取個(gè)好名。? 對(duì)于int、float等變量,務(wù)必進(jìn)行初始化。

? 務(wù)必將指針初始化為NULL或有效的地址———如運(yùn)算符new返回的地址。

? 使用數(shù)組時(shí),絕不要跨越其邊界??缭綌?shù)組邊界被稱(chēng)為緩沖區(qū)溢出,可導(dǎo)致安全漏洞。

? 不要使用C風(fēng)格字符串(char*'),也不要使用strelen()和strcopy()等函數(shù)。std::string更安全,還提供了很多有用的方法,如獲取長(zhǎng)度、進(jìn)行復(fù)制和附加的方法。

? 僅當(dāng)確定要包含的元素?cái)?shù)時(shí)才使用靜態(tài)數(shù)組。如果不確定,應(yīng)使用std::vector等動(dòng)態(tài)數(shù)組。

? 聲明和定義接受非 POD 類(lèi)型作為輸入的函數(shù)時(shí),應(yīng)考慮將參數(shù)聲明為引用,以免調(diào)用函數(shù)時(shí)執(zhí)行不必要的復(fù)制步驟。

? 如果類(lèi)包含原始指針成員,務(wù)必考慮如何在復(fù)制或賦值時(shí)管理內(nèi)存資源所有 權(quán),即應(yīng)考慮編寫(xiě)復(fù)制構(gòu)造函數(shù)和賦值運(yùn)算符。

? 編寫(xiě)管理動(dòng)態(tài)數(shù)組的實(shí)用類(lèi)時(shí),務(wù)必實(shí)現(xiàn)移動(dòng)構(gòu)造函數(shù)和移動(dòng)賦值運(yùn)算符,以改善性能。

? 務(wù)必正確地使用const。理想情況下,get()函數(shù)不應(yīng)修改類(lèi)成員,因此應(yīng)將其聲明為const函數(shù)。同樣,除非要修改函數(shù)參數(shù)包含的值,否則應(yīng)將其聲明為const引用。

? 不要使用原始指針,而應(yīng)盡可能使用合適的智能指針。

? 編寫(xiě)實(shí)用類(lèi)時(shí),務(wù)必花精力實(shí)現(xiàn)讓它使用起來(lái)更容易的運(yùn)算符。

? 在有選擇余地的情況下,務(wù)必使用模板而不是宏。模板不但是通用的,還是類(lèi)型安全的。

? 編寫(xiě)類(lèi)時(shí),如果其對(duì)象將存儲(chǔ)在諸如vector和list等容器中,或者被用作映射中的鍵,務(wù)必實(shí)現(xiàn)運(yùn)算符<,它將用作默認(rèn)排序標(biāo)準(zhǔn)。如果您編寫(xiě)的lambda表達(dá)式很長(zhǎng),應(yīng)考慮轉(zhuǎn)而使用函數(shù)對(duì)象,即實(shí)現(xiàn)了operator()的類(lèi),因?yàn)楹瘮?shù)對(duì)象可重用,且只有一個(gè)地方需要維護(hù)。

? 絕不要認(rèn)為運(yùn)算符new肯定會(huì)成功。對(duì)于分配資源的代碼,務(wù)必處理其可能引發(fā)的異常,即將其放在try塊中,并編寫(xiě)相應(yīng)的catch()塊。

? 絕不要在析構(gòu)函數(shù)中引發(fā)異常。

到此,關(guān)于“C++中怎么使用try和catch捕獲異?!钡膶W(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


網(wǎng)頁(yè)標(biāo)題:C++中怎么使用try和catch捕獲異常
文章來(lái)源:http://weahome.cn/article/iipodd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部