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

正文內(nèi)容

命名空間與異常處理(編輯修改稿)

2025-06-17 19:48 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 統(tǒng)所接受, C++系統(tǒng)就簡(jiǎn)單地終止程序運(yùn)行。如下: func1()→func2()→func3()→func4() 異常處理 ← ← ← 引發(fā)異常 所以說(shuō), C++異常處理的目的,是在異常發(fā)生時(shí),盡可能地減少破壞,周密地處理善后,而不去影響程序其他部分的運(yùn)行。 17 異常處理的過(guò)程 把可能會(huì)產(chǎn)生異常的語(yǔ)句或語(yǔ)句塊放在 try語(yǔ)句塊中。程序嘗試運(yùn)行這些語(yǔ)句,一旦它們?cè)谶\(yùn)行中產(chǎn)生了異常,那么程序不會(huì)被終止,而是轉(zhuǎn)入異常處理程序,根據(jù)我們的意愿繼續(xù)運(yùn)行下去。 1) 定義異常( try語(yǔ)句) try { 可能產(chǎn)生錯(cuò)誤的語(yǔ)句或語(yǔ)句塊 } 2) 抓住異常( catch語(yǔ)句) 18 將異常處理的語(yǔ)句放在 catch語(yǔ)句塊中,以便異常被傳遞來(lái)時(shí)處理。通常, 異常處理是放在 try語(yǔ)句塊后的由若干個(gè) catch語(yǔ)句組成的程序塊中,且每個(gè) try語(yǔ)句后面必須至少有一個(gè) catch語(yǔ)句。 異常處理的過(guò)程 catch(異常類型聲明 1) { 異常處理語(yǔ)句塊 1 } catch(異常類型聲明 2) { 異常處理語(yǔ)句塊 2 } …… catch(異常類型聲明 n) { 異常處理語(yǔ)句塊 n } 19 如果在 try語(yǔ)句塊中發(fā)現(xiàn)了異常,且拋出了該異常,則這個(gè)異常就可以被某個(gè) catch語(yǔ)句所捕獲并處理, 捕獲和處理的條件是被拋出的異常類型與 catch語(yǔ)句的異常類型相匹配。 由于 C++使用數(shù)據(jù)類型來(lái)區(qū)分不同的異常,因此在判斷異常時(shí), throw語(yǔ)句中的表達(dá)式的值就沒(méi)有實(shí)際意義,而表達(dá)式的類型就特別重要。 異常處理的過(guò)程 3) 拋出異常( throw語(yǔ)句) C++中的異常是通過(guò) throw語(yǔ)句來(lái)拋出的。它檢測(cè)是否產(chǎn)生異常,若是,則拋出異常。 throw 表達(dá)式; 20 【 例 】 異常處理的簡(jiǎn)單應(yīng)用 include iostream using namespace std。 void init(int *array,int size)。 int main() { int *p=new int[10*1024*1024]。 int *q=new int[10*1024*1024]。 system(pause)。 try { init(p,10*1024*1024)。 init(q,10*1024*1024)。 } catch (...) //… 代表所有類型 { cout程序產(chǎn)生異常! endl。 cout準(zhǔn)備釋放內(nèi)存 ...endl。 delete []q。 return 1。 } cout準(zhǔn)備釋放內(nèi)存 ...endl。 delete []p。 delete []q。 return 0。 } 21 【 例 】 異常處理的簡(jiǎn)單應(yīng)用 程序運(yùn)行結(jié)果: 請(qǐng)按任意鍵繼續(xù) . . . 程序產(chǎn)生異常! 準(zhǔn)備釋放內(nèi)存 ...... 功能分析:程序沒(méi)有崩潰,并且及時(shí)提示發(fā)生了錯(cuò)誤,且“準(zhǔn)備釋放內(nèi)存 ......也出現(xiàn)了,說(shuō)明堆內(nèi)存 q肯定被安全釋放了。我們對(duì)異常的處理目的也達(dá)到了。 22 從上述程序看出,異常處理的執(zhí)行過(guò)程: ( 1)按正常的順序執(zhí)行到 try語(yǔ)句,然后執(zhí)行 try語(yǔ)句塊內(nèi)的程序段。 ( 2)若在 try語(yǔ)句塊執(zhí)行期間沒(méi)有發(fā)生異常,則 catch語(yǔ)句塊不被執(zhí)行。 ( 3)若在 try語(yǔ)句塊執(zhí)行期間或在該語(yǔ)句塊直接或間接調(diào)用的任何函數(shù)中發(fā)生了異常,并將異常拋出,則該異常將沿調(diào)用鏈上傳,直到找到與該異常類型相匹配的 catch語(yǔ)句塊來(lái)處理異常。異常處理后,執(zhí)行所有 catch語(yǔ)句塊的后續(xù)程序。 ( 4) 如果未找到與該異常類型相匹配的 catch語(yǔ)句塊,則由 C++終止程序的運(yùn)行。 【 例 】 異常處理的簡(jiǎn)單應(yīng)用 23 補(bǔ)充: ( 1) C++只處理放在 try語(yǔ)句塊內(nèi)受監(jiān)控的過(guò)程的異常。 ( 2)在 try語(yǔ)句塊之后必須緊跟一個(gè)或多個(gè) catch語(yǔ)句塊 ,以便對(duì)發(fā)生的異常進(jìn)行處理。在 try語(yǔ)句塊出現(xiàn)之前,不能出現(xiàn) catch語(yǔ)句塊。 ( 3) catch語(yǔ)句的括號(hào)中只能有一個(gè)形參(可選),而形參的數(shù)據(jù)類型不能缺省必須保留,因?yàn)椴东@是利用數(shù)據(jù)類型的匹配實(shí)現(xiàn)的。 ( 4)拋出異常與處理異常可以放在不同的函數(shù)中。 ( 5) catch(…) 語(yǔ)句
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1