亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++異常處理機制

2019-11-06 06:41:43
字體:
來源:轉載
供稿:網友

一.C++異常處理機制的組成部分? try(檢查) ,throw(拋出),catch(捕獲)。 將需要檢查的語句放在try塊中,throw用來當出現異常時拋出一個異常信息,而catch則用來捕獲異常信息,如果捕捉到了異常信息,就處理它。

二.try 1.try塊可以嵌套 2.程序按順序尋找匹配的異常處理器,拋出的異常將被第一個類型符合的異常處理器捕獲 3.如果內層try塊后面沒有找到合適的異常處理器,該異常向外傳播,到外層try塊后面的catch塊中尋找 4.沒有被捕獲的異常將調用terminate函數,terminate函數默認調用abort終止程序的執行,可以使用set_terminate函數指定terminate函數將調用的函數

三.throw 1.可以拋出內置類型異常也可以拋出自定義類型異常 2.throw拋出一個類對象會調用拷貝構造函數,因此常拋出臨時對象, e.g. throw Myexception(“Myexception”); 3.拋出異常后,異常發生之前創建的局部對象被銷毀,這一過程稱為棧展開

什么是棧展開? 當一個函數里面拋出異常時,如果拋出的異常沒有在該函數里面找到相應的catch處理模塊,這個時候在拋出異常前的那些局部變量就開始銷毀,最后整個函數調用的棧幀也被銷毀。異常就到了調用該函數的去找catch處理模塊,如果也沒有 那么一樣要銷毀該調用函數的棧幀。就這樣一層層的往外推。這樣的一個過程就是棧展開了

四.catch 1.一個異常處理器一般只捕捉一種類型的異常 2.異常處理器的參數類型和拋出異常的類型相同 3. …表示可以捕獲任何異常

注意: 1.講派生類放在基類catch的上面,否則的話異常信息都會被基類接走 2.接指針的異常 例: throw new MyExceptionD(“MyException”); catch(MyExceptionD *e) { cout << e->what() << endl; delete e; } 我們一般不拋出指針的異常,防止出現淺拷貝。 catch(void *) 接受任何指針的異常,一般放最后。

示例測試代碼附錄: 1.demo1.cpp

#include <iostream>using namespace std;double div(double a, double b){ if(b == 0.0) { //throw(1); throw(5.2); } return a / b;}void myterminate(){ cout << "my terminate" << endl;}int main(){ set_terminate(myterminate); try { div(5.0, 0.0); } catch(int) { cout << "div zero" << endl; } catch(double a) { cout << "a=" << a << endl; cout << "double zero" << endl; } catch(...) { cout << "other zero" << endl; }}

2.demo2.cpp

#include <iostream>#include <string>using namespace std;class MyException{public: MyException(char *message) : message_(message) { cout << "constructor MyException" << endl; } MyException(const MyException& other) : message_(other.message_) { cout << "copy constructor MyException" << endl; } ~MyException() { cout << "destroy MyException" << endl; } const char * what() const { return message_.c_str(); }PRivate: string message_;};class MyExceptionD : public MyException{public: MyExceptionD(char *message) : MyException(message) { cout << "constructor MyExceptionD" << endl; } ~MyExceptionD() { cout << "destroy MyExceptionD" << endl; }};class Test{public: Test() { cout << "constructor Test" << endl; } ~Test() { cout << "destroy Test" << endl; }};int main(){ try { // Test t; // MyException e("MyException!"); throw(e); throw MyExceptionD("MyException"); throw new MyExceptionD("MyException"); } catch(void *) { cout << "void *" << endl; } catch(int) { cout << "exception int" << endl; } catch(MyExceptionD& e) { cout << e.what() << endl; } catch(MyException& e) { cout << "Base " << e.what() << endl; } catch(MyExceptionD *e) { cout << e->what() << endl; delete e; } return 0;}
上一篇:C++四種類型轉換

下一篇:c++作業2

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www欧美日韩| 欧美夫妻性生活xx| 日韩中文字幕视频| 日韩成人久久久| 69久久夜色精品国产7777| 岛国av一区二区三区| 欧美一性一乱一交一视频| 国产精品久久电影观看| 成人免费观看49www在线观看| 中文字幕精品www乱入免费视频| 一区二区三区天堂av| 国产精品久久久久久久久久东京| 国产精品极品在线| 国产精品欧美激情| 亚洲欧美成人一区二区在线电影| 亚洲一区二区久久久| 欧美俄罗斯乱妇| 亚洲福利视频网站| 亚洲黄色av网站| 亚洲国产成人精品久久久国产成人一区| 亚洲黄色www网站| 国产精品激情自拍| 成人欧美一区二区三区在线| 538国产精品一区二区免费视频| 97在线免费视频| 91精品久久久久| 三级精品视频久久久久| 狠狠躁夜夜躁人人躁婷婷91| 伊人久久久久久久久久久| 亚洲电影免费观看高清完整版| 色狠狠av一区二区三区香蕉蜜桃| 国产精品三级美女白浆呻吟| 亚洲国产日韩欧美在线图片| 亚洲欧美日韩网| 欧美在线免费视频| 亚洲另类激情图| 国产精品99久久99久久久二8| 久久久亚洲欧洲日产国码aⅴ| 日韩精品极品在线观看| 国产亚洲人成a一在线v站| 亚洲电影av在线| 欧美日韩国产91| 色妞色视频一区二区三区四区| 国产精品自产拍在线观看| 96精品久久久久中文字幕| 精品五月天久久| 欧美激情综合色| 九九视频这里只有精品| 日本在线精品视频| 色777狠狠综合秋免鲁丝| 国产精品久久久久久av福利| 国产欧美日韩精品丝袜高跟鞋| 成人性生交大片免费观看嘿嘿视频| 亚洲最大福利视频| 久久99精品国产99久久6尤物| 日韩一区二区三区xxxx| 一本色道久久88综合亚洲精品ⅰ| 7m第一福利500精品视频| 神马久久久久久| 日韩一区av在线| 色多多国产成人永久免费网站| 91sao在线观看国产| 97在线视频免费播放| 欧美精品在线免费播放| 欧美激情xxxxx| 欧美又大粗又爽又黄大片视频| 精品国产乱码久久久久久婷婷| 成人h猎奇视频网站| 日日摸夜夜添一区| 久久精品视频在线播放| 久久av在线看| 国产一区二区三区在线看| 国产91免费看片| 欧美日韩国产精品一区二区不卡中文| 久久手机免费视频| 日韩在线视频播放| 国产精品www| 日韩在线国产精品| 亚洲欧洲在线视频| 国产精品福利片| 欧美成人精品三级在线观看| 亚洲男人天堂视频| 91av国产在线| 51ⅴ精品国产91久久久久久| 最近中文字幕日韩精品| 在线日韩中文字幕| 亚洲无限乱码一二三四麻| 欧美日韩一区免费| 亚洲va男人天堂| 国产精品自产拍在线观看中文| 九九热这里只有在线精品视| 国产精品九九久久久久久久| 亚洲aa在线观看| 久久精品在线视频| 性欧美亚洲xxxx乳在线观看| 欧洲成人性视频| 亚洲国产成人精品久久久国产成人一区| 欧美一区深夜视频| 久久亚洲欧美日韩精品专区| 精品国偷自产在线视频| 97人人模人人爽人人喊中文字| 日韩成人在线播放| 91精品久久久久| 97精品视频在线观看| 国产狼人综合免费视频| 51久久精品夜色国产麻豆| 亚洲欧美日韩区| 日韩电影免费观看在线观看| 国产精品一区二区三区成人| 国产不卡在线观看| 亚洲女人初尝黑人巨大| 91精品国产色综合久久不卡98| 日韩精品免费在线观看| 亚洲国产成人在线播放| 中文字幕亚洲图片| 丝袜亚洲欧美日韩综合| 亚洲福利在线看| 九九精品视频在线| 在线精品播放av| 久久综合色影院| 亚洲女人天堂av| 欧美高清视频在线| 久久影视电视剧免费网站清宫辞电视| 成人亚洲综合色就1024| 国产精品吊钟奶在线| 欧亚精品在线观看| 91免费精品视频| 欧美精品在线视频观看| 午夜精品免费视频| 精品久久久中文| 欧美成人合集magnet| 欧美老妇交乱视频| 亚洲电影免费观看高清完整版在线| 热门国产精品亚洲第一区在线| 影音先锋欧美精品| 精品日本美女福利在线观看| 国产精国产精品| 欧美在线免费观看| 怡红院精品视频| 成人精品福利视频| 日本精品va在线观看| 热草久综合在线| 日韩黄色高清视频| 亚洲精品美女在线| 国产成人免费91av在线| 国语自产精品视频在线看抢先版图片| 久久99国产精品久久久久久久久| 国产精品毛片a∨一区二区三区|国| 国产成人aa精品一区在线播放| 成人做爰www免费看视频网站| 尤物99国产成人精品视频| 久久精品视频播放| 日韩最新在线视频| 国产主播在线一区| 成人性生交xxxxx网站| 91豆花精品一区| 国产mv免费观看入口亚洲| 亚洲国模精品私拍| 国产精品久久久久久久久久东京| 亚洲国内精品视频| 国内精品久久久久久影视8| 成人激情视频免费在线| 亚洲欧洲一区二区三区在线观看| 精品久久久久久久久久久|