freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c面向?qū)ο蟪绦蛟O(shè)計(jì)第12章異常處理-資料下載頁(yè)

2025-01-09 00:59本頁(yè)面
  

【正文】 t Caught One!\n。 } } 異常類和 C++標(biāo)準(zhǔn)異常 ? catch可以捕獲任意類型的異常,包括程序員自己創(chuàng)建的類型。 ? 在實(shí)際程序中,大多數(shù)異常的類型都是類,而不是內(nèi)置數(shù)據(jù)類型(標(biāo)準(zhǔn)類型)。 ? 為異常定義一個(gè)類的最好理由是:我們可以創(chuàng)建一個(gè)類來(lái)描述發(fā)生的錯(cuò)誤信息,而這個(gè)信息可以幫助異常處理模塊處理錯(cuò)誤。 例如: ? 實(shí)際應(yīng)用中使用的大多數(shù)異常類遠(yuǎn)比MyException要復(fù)雜。 使用異常類 include iostream include cstring using namespace std。 class MyException { public: char str_what[80]。 MyException() { *str_what = 0。 } MyException(char *s) { strcpy(str_what, s)。 } }。 使用異常類 使用異常類(續(xù)) int main() { int a, b。 try { cout Enter numerator and denominator: 。 cin a b。 if(!b) throw MyException(Cannot divide by zero!)。 else cout Quotient is a/b \n。 } catch (MyException e) { // catch an error cout \n。 } return 0。 } 返回 C++語(yǔ)言中的標(biāo)準(zhǔn)異常 表 C++語(yǔ)言本身拋出的標(biāo)準(zhǔn)異常 標(biāo)準(zhǔn)異常的名字 拋出異常的主體 對(duì)應(yīng)的頭文件 bad_alloc new new bad_cast dynamic_cast typeinfo bad_typeid typeid typeinfo bad_exception exception specification exception 【 例 】 處理異常類 bad_alloc對(duì)象 include iostream include new //需要包含該頭文件 using namespace std。 ... try { p = new int[32]。 // 為整型數(shù)組申請(qǐng)動(dòng)態(tài)存儲(chǔ)單元 } catch (bad_alloc xa) { cout Allocation 。 \n。 return 1。 } ... C++異常處理 機(jī)制的好處 ? 將程序中正常處理的代碼(描述問(wèn)題的算法)與異常處理代碼分離開(kāi)來(lái),提高了程序的可讀性。 ? 提供了一種更規(guī)則的處理異常的風(fēng)格,便于軟件項(xiàng)目組人員之間的合作。 – 通常情況下,類的創(chuàng)建者監(jiān)控代碼段,從類中拋出異常。 – 類的使用者捕獲到異常并處理。 C++異常處理機(jī)制的好處(續(xù)) ? 在異常發(fā)生時(shí),能夠撤銷對(duì)象,并自動(dòng)調(diào)用析構(gòu)函數(shù)進(jìn)行善后處理, 釋放對(duì)象所占用的系統(tǒng)資源。 發(fā)生異常時(shí)資源釋放 class Y { int* p。 void init() 。 public: Y(int s) { p = new int[s] 。 init( ) 。 } ~Y( ) { delete[] p。 } / / ... }。 A safe variant class Z { vectorint p。 void init() 。 public: Z(int s) : p(s) { init( ) 。 } / / ... }。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1