最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++異常重拋出實例分析

 更新時間:2020年05月05日 14:35:03   作者:川塵  
在本文里小編給大家分享的是關(guān)于C++異常重拋出實例分析,有興趣點朋友們可以跟著學(xué)習(xí)下。

如果我們編寫了一個函數(shù),函數(shù)內(nèi)部可能會出現(xiàn)異常,但是我們不想在這個函數(shù)內(nèi)處理,而是想要通知調(diào)用者,那么C++允許它重拋出這個異常。語法如下:

try {
  //Execute some code    
} catch (Exception& e) {
  //Peform some operations before exits
  throw;
}

語句throw重新拋出了異常。

看一個實際的例子:

#include <iostream>
#include <stdexcept>

using namespace std;

int f(){
  try{
    throw runtime_error("Exception in f");
  } catch(exception& e){
    cout << "Exception caught in f" << endl;
    cout << e.what() << endl;
    throw;
  }
}
int main()
{
  try{
    f();
  } catch(exception& e){
    cout << "Exception caught in main" << endl;
    cout << e.what() << endl;
  }
  return 0;
}

運行結(jié)果:

知識點擴展

c++重新拋出異常
有可能單個catch不能完全處理一個異常,此時在進行了一些處理工作之后,需要將異常重新拋出,由函數(shù)調(diào)用鏈中更上層的函數(shù)來處理。重新拋出由“throw;”語句實現(xiàn),throw后不跟表達式或類型。

“throw;”將重新拋出異常對象,它只能出現(xiàn)在catch或catch調(diào)用的函數(shù)中,如果出現(xiàn)在其它地方,會導(dǎo)致調(diào)用terminate函數(shù)。

被重新拋出的異常是原來的異常對象,不是catch形參。該異常類型取決于異常對象的動態(tài)類型,而不是catch形參的靜態(tài)類型。比如來自基類類型形參catch的重新拋出,可能實際拋出的是一個派生類對象。

只有當(dāng)異常說明符是引用時,在catch中對形參的改變,才會傳播到重新拋出的異常對象中。

catch (my_error & eObj) {  
 eObj.status = severeErr; 
 throw; // the status member of the exception object is severeErr
} catch (other_error eObj) {
 eObj.status = badErr;
 throw; // the status member of the exception rethrown is unchanged
}

以上就是C++異常重拋出實例分析的詳細內(nèi)容,更多關(guān)于C++異常重拋出的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言中幾種常量的認識和理解

    C語言中幾種常量的認識和理解

    這篇文章主要為大家介紹了C語言常量的認識和理解,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例

    C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例

    今天小編就為大家分享一篇關(guān)于C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言中結(jié)構(gòu)體與內(nèi)存對齊實例解析

    C語言中結(jié)構(gòu)體與內(nèi)存對齊實例解析

    C語言結(jié)構(gòu)體對齊也是老生常談的話題了,基本上是面試題的必考題,這篇文章主要給大家介紹了關(guān)于C語言中結(jié)構(gòu)體與內(nèi)存對齊的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • MFC實現(xiàn)字幕滾動效果

    MFC實現(xiàn)字幕滾動效果

    這篇文章主要為大家詳細介紹了MFC實現(xiàn)滾動字幕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C/C++中比較字符串的方法詳解

    C/C++中比較字符串的方法詳解

    這篇文章主要介紹了C/C++中比較字符串的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 一文帶你搞懂C語言預(yù)處理宏定義

    一文帶你搞懂C語言預(yù)處理宏定義

    這篇文章主要為大家詳細介紹了C語言預(yù)處理宏定義#define,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-10-10
  • 詳析C++中的auto

    詳析C++中的auto

    這篇文章主要介紹了詳析C++中的auto,auto是具有自動存儲器的局部變量,C++11中,標(biāo)準(zhǔn)委員會賦予了auto全新的含義即:auto不再是一個存儲類型指示符,而作為一個新的類型指示符來指示編譯器,下面來看看文章的詳細介紹吧
    2022-01-01
  • 利用C++求絕對值的幾種方法例子

    利用C++求絕對值的幾種方法例子

    相信大家在學(xué)習(xí)C++時,應(yīng)該都有做過求絕對值的題目,下面這篇文章主要給大家介紹了關(guān)于利用C++求絕對值的幾種方法例子,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • C語言詳細講解qsort函數(shù)的使用

    C語言詳細講解qsort函數(shù)的使用

    排序方法有很多種:選擇排序,冒泡排序,歸并排序,快速排序等。看名字都知道快速排序是目前公認的一種比較好的排序算法。因為他速度很快,所以系統(tǒng)也在庫里實現(xiàn)這個算法,便于我們的使用。這就是qsort函數(shù)
    2022-04-04
  • Qt為exe添加ico圖片的簡單實現(xiàn)步驟

    Qt為exe添加ico圖片的簡單實現(xiàn)步驟

    這篇文章主要給大家介紹了關(guān)于Qt為exe添加ico圖片的簡單實現(xiàn)步驟,通過文中介紹的方法可以幫助大家實現(xiàn)這個自定義exe圖標(biāo)的效果,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07

最新評論

罗定市| 渝北区| 屏南县| 将乐县| 阳谷县| 敦化市| 肇东市| 满洲里市| 泗阳县| 南阳市| 高唐县| 长丰县| 夏津县| 阿坝| 南充市| 华安县| 阳泉市| 白玉县| 泰顺县| 安化县| 通州区| 永昌县| 四会市| 汝城县| 西安市| 永州市| 西畴县| 南安市| 清新县| 山西省| 集贤县| 耒阳市| 丹棱县| 马关县| 大邑县| 牟定县| 开远市| 浦县| 东兰县| 中山市| 东至县|