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