第10章-異常處理_第1頁
第10章-異常處理_第2頁
第10章-異常處理_第3頁
第10章-異常處理_第4頁
第10章-異常處理_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C++程序設(shè)計(jì)新世紀(jì)應(yīng)用型高等教育教材編審委員會組編主編羅燁李秉璋第二版新世紀(jì)應(yīng)用型高等教育軟件專業(yè)系列規(guī)劃教材第10章異常處理10.1異常的概念和異常處理的基本思想3程序的錯(cuò)誤通常包括:語法錯(cuò)誤、邏輯錯(cuò)誤、運(yùn)行異常。語法錯(cuò)誤指書寫的程序語句與語言規(guī)則不符,無法通過編譯器編譯。這類錯(cuò)誤在編譯、連接時(shí)由編譯器指出。邏輯錯(cuò)誤是指程序能順利運(yùn)行,但是沒有實(shí)現(xiàn)預(yù)期的功能及得到預(yù)期結(jié)果。這類錯(cuò)誤通過調(diào)試、分析發(fā)現(xiàn)問題。運(yùn)行異常(exception)是指程序在運(yùn)行的過程中由于意外的結(jié)果、運(yùn)行環(huán)境問題造成程序異常終止,如操作員操作失誤、內(nèi)存空間不足、設(shè)備沒有準(zhǔn)備好、文件讀寫不成功、執(zhí)行了除0操作等。程序運(yùn)行中的運(yùn)行異常是可以預(yù)料但難以避免的。對于運(yùn)行異常不能簡單地退出整個(gè)程序,特別是對大型程序更不能如此處理。因此為了保證程序的健壯性,必須在程序中對運(yùn)行異常進(jìn)行預(yù)見性處理。對運(yùn)行異常進(jìn)行預(yù)見性處理稱為異常處理。10.1異常的概念和異常處理的基本思想410.2異常處理機(jī)制5C++中異常處理機(jī)制的主要思想是:程序在結(jié)構(gòu)上分為兩個(gè)區(qū)域:異常拋出區(qū)、異常處理區(qū)(圖10-2),把可能造成異常的一系列操作(語句或函數(shù)調(diào)用)放在異常拋出區(qū)的try語句塊中,如果try語句塊中的某個(gè)操作在執(zhí)行中產(chǎn)生了異常,則通過執(zhí)行一個(gè)throw語句拋出(產(chǎn)生)一個(gè)異常對象。拋出的對象將由異常處理區(qū)的catch語句來捕獲并處理。10.2.1

異常處理的語法10.2異常處理機(jī)制6(1)try語句塊語法如下:10.2.1

異常處理的語法(2)throw()語句的功能是在發(fā)生異常時(shí),產(chǎn)生并拋出異常對象。語法格式如下:10.2異常處理機(jī)制7(3)catch語句在異常處理區(qū)中捕獲throw拋出的異常對象,然后進(jìn)行相應(yīng)的異常處理。語法格式如下:10.2.1

異常處理的語法10.2異常處理機(jī)制8為了加強(qiáng)程序的可讀性,使用戶能夠清楚了解所使用的函數(shù)可以拋出哪些異常,可以在函數(shù)的聲明中列出函數(shù)可以拋出的所有異常類型,稱為異常接口聲明。語法形式如下:其中:(1)“異常類型表”中列出函數(shù)可以拋出的各種異常類型名。(2)當(dāng)函數(shù)聲明中沒有throw關(guān)鍵字時(shí),表明函數(shù)可以拋出任何異常;(3)當(dāng)函數(shù)聲明中有throw關(guān)鍵字時(shí),但沒有“異常類型表”時(shí),表明函數(shù)不拋出任何異常。10.2.2

異常接口聲明10.2異常處理機(jī)制910.2.3

異常處理的嵌套10.2異常處理機(jī)制10異常處理程序在捕獲異常后,會出現(xiàn)兩種情況:(1)發(fā)現(xiàn)本身不能處理,或者只能做部分處理。(2)即使進(jìn)行了某些處理,還需要繼續(xù)或重新處理。C++中重新拋出已經(jīng)拋出的任何一種異常的語句是:throw;10.2.4

異常的重新拋出10.3異常處理實(shí)例———數(shù)組下標(biāo)越界異常處理11C++標(biāo)準(zhǔn)庫提供了一個(gè)異常類層次結(jié)構(gòu)。異常類以exception作為基類,定義在庫的<exception>頭文件中。用戶可以使用C++標(biāo)準(zhǔn)庫中的異常類處理程序中的異常。excep-tion基類提供了what()虛函數(shù),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論