異常(exception)是指在運(yùn)行的時(shí)刻程序出現(xiàn)反情況。比如:數(shù)組下標(biāo)越界。打開文件夾失敗,動(dòng)態(tài)創(chuàng)建內(nèi)存失敗等。程序員一般有自己的異常處理方式。這導(dǎo)致個(gè)各種編碼方式,。所以很難整合到一個(gè)程序中。
異常處理(exception  handing ), 為“響應(yīng)運(yùn)行時(shí)刻的程序“提供了一個(gè)標(biāo)準(zhǔn)語言級(jí)的設(shè)施。它支持統(tǒng)一的語法和風(fēng)格,也允許每個(gè)程序員進(jìn)行微調(diào)。異常處理                不需要我們?cè)诔绦蛑刑幪庯@示的測(cè)試異常狀態(tài)。從而可以將測(cè)試代碼顯示的抽取出來,放在指定的 標(biāo)記的代碼塊中。因此 異常處理設(shè)施大大的 簡(jiǎn)化了程序的長(zhǎng)度和復(fù)雜度。
異常處理機(jī)制主要構(gòu)成如下:
1: 程序中異常出現(xiàn)的點(diǎn)。一旦識(shí)別出程序的異常,就會(huì)拋出異常(throw)。當(dāng)異常被拋出的時(shí)候,程序就會(huì)被掛起,知道異常被處理完畢了。c++中,異常的處理有throw表達(dá)式來執(zhí)行。
2:程序中異常被處理的點(diǎn). 典型的程序的異常拋出和處理位于獨(dú)立的 函數(shù)或者成員函數(shù)中。找到異常處理代碼一般要展開程序調(diào)用棧(progam call stack ).一旦異常被處理完畢,及恢復(fù)程序的正常執(zhí)行。但是不是在出現(xiàn) 異常的地方恢復(fù),而是在處理異常的地方恢復(fù)執(zhí)行過程。在c++中異常的處理用catch表達(dá)式來執(zhí)行。
catch和try字句相關(guān)聯(lián)。一個(gè)try塊用一個(gè)或者多個(gè)catch子句將一條或者多條語句組織起來。
系統(tǒng)根據(jù)被拋出的異常和catch子句的異常類型的匹配的情況來選擇catch子句。
系統(tǒng)把控制傳遞給catch子句體,其中的語句將順序執(zhí)行。完成后后,除非子句體中還拋出異常,否則的話,控制將會(huì)被傳到程序的當(dāng)前點(diǎn)上。