《《C語言程序設(shè)計(jì)》第十二章:異常處理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C語言程序設(shè)計(jì)》第十二章:異常處理.ppt(13頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第十二章 異常處理,C++語言程序設(shè)計(jì),2,本章主要內(nèi)容,異常處理的基本思想 C++異常處理的實(shí)現(xiàn) 異常處理中的構(gòu)造與析構(gòu),3,異常處理的基本思想,4,異常處理的實(shí)現(xiàn)機(jī)制,拋擲異常的程序段 ...... throw 表達(dá)式; ......,捕獲并處理異常的程序段 try 復(fù)合語句 catch(異常類型聲明) 復(fù)合語句 catch(異常類型聲明) 復(fù)合語句 ,,,5,異常處理的實(shí)現(xiàn)機(jī)制,若有異常則通過throw操作創(chuàng)建一個(gè)異常對(duì)象并拋擲。 將可能拋出異常的程序段嵌在try塊之中。控制通過正常的順序執(zhí)行到達(dá)try語句,然后執(zhí)行try塊內(nèi)的保護(hù)段。 如果在保護(hù)段執(zhí)行期間沒有引起異常,那么跟在t
2、ry塊后的catch子句就不執(zhí)行。程序從try塊后跟隨的最后一個(gè)catch子句后面的語句繼續(xù)執(zhí)行下去。 catch子句按其在try塊后出現(xiàn)的順序被檢查。匹配的catch子句將捕獲并處理異常(或繼續(xù)拋擲異常)。 如果匹配的處理器未找到,則運(yùn)行函數(shù)terminate將被自動(dòng)調(diào)用,其缺省功能是調(diào)用abort終止程序。,6,例12-1處理除零異常,#include int Div(int x,int y); int main() try cout<<5/2=<
3、 catch(int) cout<
4、;,8,異常處理中的構(gòu)造與析構(gòu),找到一個(gè)匹配的catch異常處理后: 初始化參數(shù)。 將從對(duì)應(yīng)的try塊開始到異常被拋擲處之間構(gòu)造(且尚未析構(gòu))的,所有自動(dòng)對(duì)象進(jìn)行析構(gòu)。 從最后一個(gè)catch處理之后開始恢復(fù)執(zhí)行。,9,例12-2 異常處理時(shí)的析構(gòu),#include void MyFunc( void ); class Expt public: Expt(); Expt(); const char *ShowReason() const return Expt類異常。; ;,class Demo public: Demo(); Demo(); ; Demo::Demo() cout<<構(gòu)造
5、 Demo.<
展開閱讀全文