日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

發布時間:2025/6/17 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • I 異常處理
        • II 字符串異常
        • III 異常對象
        • IV 拋出任意類型對象
        • V 自定義異常
        • VI 異常相關代碼



I 異常處理



1. 異常處理 : 使用 " try{}catch(){} " 將拋出異常的代碼包起來 , 注意將可能拋出異常的代碼包裹在 try 后的大括號中 , 將異常處理邏輯放在 catch 后的大括號中 ;

  • ① 包含可能出現異常的代碼 : 在 try 代碼塊中編寫可能拋出異常的代碼 ;
  • ② 捕獲異常 : catch 后的括號中注明可能捕獲的異常類型 ;
  • ③ 針對捕獲的異常進行處理 : 在 catch() 后的代碼塊中編寫異常處理代碼 ;

2. 異常處理代碼示例 :

// 2. 捕獲異常對象// 其中調用 exception 的 what() 方法即可獲得異常信息// 可以獲取異常信息 , 即構造函數中傳入的字符串try{throwException();}catch (exception &e){cout << " 捕獲了異常對象 " << e.what() << endl;}

II 字符串異常



1. 拋出字符串 : 調用 " throw 字符串 " , 可以拋出一個異常 , 異常信息就是該字符串內容 ;

//拋出字符串異常的方法 void throwString() {throw "throwStringException 拋出異常字符串"; }

2. 捕獲字符串異常 : 捕獲拋出的字符串異常 , 在 catch 后的括號中捕獲 const char* c 類型的異常 ;

  • 捕獲異常類型 : const char* c
// 1. 捕獲字符串異常try{throwString();}catch (const char* c){cout << " 捕獲了字符串異常 " << c << endl;}

3. 代碼執行結果 :

捕獲了字符串異常 throwStringException 拋出異常字符串

III 異常對象



C++ 中可以拋出任意一個對象 ;

1. 拋出對象 : 調用 " throw exception( 字符串 ) " , 調用 exception 構造方法 , 傳入異常信息字符串 ;

//拋出任意類型對象異常的方法 void throwException() {throw exception("throwException 拋出異常對象"); }

2. 捕獲并處理異常對象 :

  • 捕獲異常類型 : const char* c
  • 捕獲異常對象 : 捕獲使用 exception 構造方法創建的異常 , 需要在 catch 后的括號中注明異常的類型 exception &e ;
  • 獲取異常信息 : 調用異常的 what() 方法 , 可以獲取異常信息 , 即構造函數中傳入的字符串 ;
// 2. 捕獲異常對象// 其中調用 exception 的 what() 方法即可獲得異常信息// 可以獲取異常信息 , 即構造函數中傳入的字符串try{throwException();}catch (exception &e){cout << " 捕獲了異常對象 " << e.what() << endl;}

3. 代碼執行結果 :

捕獲了異常對象 throwException 拋出異常對象

IV 拋出任意類型對象



1 . 拋出任意類型對象 : 這里拋出一個 Child 對象 , 調用 Child 類的構造方法 , 創建對象并拋出 ;

//拋出任意類型對象異常的方法 void throwChildObject() {throw Child(); }

2 . 捕獲任意對象并處理 : 捕獲拋出的對象類型 , 注意要捕獲引用類型 , 因為拋出的是對象類型 , 不是指針 ;

  • 捕獲異常類型 : Child& child
// 3. 拋出任意對象// 捕獲該對象 , 并執行其中的方法try{throwChildObject();}catch (Child& child){cout << " 捕獲了 Child 異常對象 , 調用其方法 : " << endl;child.function();}

3 . 代碼執行結果 :

捕獲了 Child 異常對象 , 調用其方法 :子類方法

V 自定義異常



1. 自定義異常 : 自定義類 , 繼承 exception 類 , 繼承使用 " : " 符號表示 , 注意這里的繼承作用于應使用 public , 否則將無法訪問父類的方法 ;

//自定義異常 class MyException : public exception { public :virtual char const* what() const {return "自定義異常 MyException what 異常信息";} };

2. 拋出異常 : 調用自定義異常的構造函數 , 將異常拋出 ;

//拋出自定義異常 void throwMyException() {throw MyException(); }

3. 異常捕獲處理 :

  • 捕獲異常類型 : MyException& my
// 4. 拋出自定義異常// 捕獲該對象 , 并執行其中的方法try{throwMyException();}catch (MyException& my){cout << " 捕獲了 自定義 MyException 異常對象 : " << my.what() << endl;}

4. 代碼執行結果 :

捕獲了 自定義 MyException 異常對象 : 自定義異常 MyException what 異常信息

VI 異常相關代碼



定義 拋出異常的方法自定義異常類 :

//拋出字符串異常的方法 void throwString() {throw "throwStringException 拋出異常字符串"; }//拋出任意類型對象異常的方法 void throwException() {throw exception("throwException 拋出異常對象"); }//拋出任意類型對象異常的方法 void throwChildObject() {throw Child(); }//自定義異常 class MyException : public exception { public :virtual char const* what() const {return "自定義異常 MyException what 異常信息";} };//拋出自定義異常 void throwMyException() {throw MyException(); }

捕獲處理異常代碼 :

// X . 異常// 1. 捕獲字符串異常try{throwString();}catch (const char* c){cout << " 捕獲了字符串異常 " << c << endl;}// 2. 捕獲異常對象// 其中調用 exception 的 what() 方法即可獲得異常信息// 可以獲取異常信息 , 即構造函數中傳入的字符串try{throwException();}catch (exception &e){cout << " 捕獲了異常對象 " << e.what() << endl;}// 3. 拋出任意對象// 捕獲該對象 , 并執行其中的方法try{throwChildObject();}catch (Child& child){cout << " 捕獲了 Child 異常對象 , 調用其方法 : " << endl;child.function();}// 4. 拋出自定義異常// 捕獲該對象 , 并執行其中的方法try{throwMyException();}catch (MyException& my){cout << " 捕獲了 自定義 MyException 異常對象 : " << my.what() << endl;}

執行結果 :

捕獲了字符串異常 throwStringException 拋出異常字符串捕獲了異常對象 throwException 拋出異常對象捕獲了 Child 異常對象 , 調用其方法 :子類方法捕獲了 自定義 MyException 異常對象 : 自定義異常 MyException what 異常信息

總結

以上是生活随笔為你收集整理的【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人福利在线 | 亚洲国产精品久久AV | 亚洲欧洲在线观看 | av污在线观看 | 久久久久久久久久久丰满 | 涩涩视频免费在线观看 | 69日本xxxxxxxx96 | 亚洲欧洲在线播放 | 天堂中文在线网 | 日韩在线影视 | 91视频免费 | 日韩精品在线一区 | 日日夜夜中文字幕 | 成人一区二区三区仙踪林 | 色妞欧美 | 夜夜春影院 | 狠狠躁夜夜躁av无码中文幕 | 亚洲精品高潮久久久久久久 | aⅴ在线免费观看 | 青娱乐在线视频观看 | 国产精品成人一区二区三区 | 在线免费观看成年人视频 | 在线天堂中文 | 欧美性猛交性大交 | 激情深爱五月 | 国产欧美一区二区三区精品酒店 | 激情小说视频在线 | 蜜桃精品视频在线观看 | 亚a在线| 欧美日韩电影一区二区三区 | 亚洲一区二区不卡在线观看 | 天天曰夜夜操 | 波多野在线 | 色就是色综合 | 欧美激情视频一区二区三区在线播放 | 穿越异世荒淫h啪肉np文 | 欧美日韩成人一区二区三区 | 黄色在线观看免费视频 | 国语久久| 毛片成人| 精品视频www | 精品免费囯产一区二区三区 | 精品久久人妻av中文字幕 | 欧美一区亚洲一区 | 动漫美女露胸网站 | 无码aⅴ精品一区二区三区 精品久久在线 | 狠狠综合久久 | 夜夜摸夜夜爽 | 91网站免费视频 | 久久久久五月 | 国产一区二区黑人欧美xxxx | 91精品大片| 男女啪啪国产 | 91丨九色丨国产在线 | 高潮一区二区三区 | 久色视频 | 久久精品电影网 | 日本内谢少妇xxxxx少交 | av中文字幕免费在线观看 | 欧美香蕉网 | 日本免费爱爱视频 | 中文高清av| 欧美综合激情网 | 国产在线一区视频 | 日本在线精品视频 | 日本调教电影 | 91视频大全 | 伊人avav | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 日韩精品在线免费 | 我要看18毛片 | 日韩视频久久 | 91免费高清 | 大乳护士喂奶hd | 无码乱人伦一区二区亚洲 | 国产美女精品久久久 | 免费中文字幕av | 精品国产三级a∨在线 | 在线精品视频一区 | 成人午夜小视频 | 空姐吹箫视频大全 | 海角社区在线 | 国产色av | 三男一女吃奶添下面 | 各种含道具高h调教1v1男男 | 99精品视频国产 | 51av视频 | 久久av不卡 | 人妻无码一区二区三区免费 | 五月婷婷视频在线观看 | 婷婷丁香综合 | 日本不卡网 | 成人激情电影在线观看 | 图书馆的女友在线观看 | 日本a级黄色 | 欧美精品人妻一区二区 | 伊人色爱| 韩国一级淫片免费看 | 久操影视|