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

詳解C++異常處理機(jī)制示例介紹

 更新時間:2022年08月16日 11:07:03   作者:lhb2998658795  
任何東西都可以認(rèn)為是異常,錯誤只是異常的一種。本文將帶大家了解C++中異常是什么,是如何捕獲和處理的等相關(guān)知識。文中示例代碼簡潔易懂,感興趣的小伙伴可以了解一下

1.C++異常處理的套路

C++異常處理機(jī)制之拋出異常關(guān)鍵字:throw

throw關(guān)鍵字的使用:

在哪可能出現(xiàn)異常就在哪里使用throw關(guān)鍵字拋出異常。 這個異常可以使用一個常量,字符串,或類對象,都可以來拋出。 throw + 常量、字符串、數(shù)對象 :用表示拋出一個異常。 throw拋出的異常將層層向外拋出,至少有try....catch...語句來捕獲這個異常并處理這個異常。 如果最外層的主函數(shù)也不進(jìn)行處理,那么主程序?qū)⒆詣油V埂?/p>

使用try{ .... } catch(exp ){..} 捕獲并處理異常:

try
{
    //有可能出現(xiàn)的異常的代碼放在try語句塊中。
    //在try語句塊中就可以捕獲這個異常。
    //如果try語句塊中的代碼出現(xiàn)異常,即自動跳轉(zhuǎn)到catch語句塊進(jìn)行異常處理。
}catch(被捕獲的異常)
{
    //catch的語句塊里是用來處理異常。
}

代碼實(shí)例:

#include <iostream>
using namespace std;
int my_add(int a,int b)
{
    if(b==0){
        throw -1;
    }
    return a/b;
}
int add(int a,int b)
{
    return a+b+my_add(a,b);
}
int main()
{
    try {
        add(10,0);
    } catch (int num) {
        if(num==-1){
            cout<<"被除數(shù)不能為0"<<endl;
        }
    }
    return 0;
}

結(jié)果圖:

2.C++標(biāo)準(zhǔn)異常庫中常用的幾個異常處理類

2.1異常類的例子

#include <iostream>
using namespace std;
int my_add(int a,int b)
{
    if(b==0){
        out_of_range  err("被除數(shù)不能為0");
        throw err;
    }
    return a/b;
}
int add(int a,int b)
{
    return a+b+my_add(a,b);
}
int main()
{
    try {
        add(10,0);
    } catch (out_of_range & err) {
 
            cout<<err.what()<<endl;
    }
    return 0;
}

2.2封裝一個自定義異常類

#include <iostream>
using namespace std;
class Err
{
 string err;
public:
    Err(string err)
    {
        this->err=err;
    }
    string what()
    {
        cout<<"被除數(shù)不能為0"<<endl;
    }
};
int my_add(int a,int b)
{
    if(b==0){
        Err  err("被除數(shù)不能為0");
        throw err;
    }
    return a/b;
}
int add(int a,int b)
{
    return a+b+my_add(a,b);
}
int main()
{
    try {
        add(10,0);
    } catch (Err & err) {
 
            cout<<err.what()<<endl;
    }
    return 0;
}

到此這篇關(guān)于詳解C++異常處理機(jī)制示例介紹的文章就介紹到這了,更多相關(guān)C++異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL的C語言API接口

    MySQL的C語言API接口

    這篇文章主要介紹了MySQL的C語言API接口,需要的朋友可以參考下
    2015-08-08
  • C語言每日練習(xí)之二叉堆

    C語言每日練習(xí)之二叉堆

    這篇文章主要為大家介紹了C語言二叉堆,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++ list的實(shí)例詳解

    C++ list的實(shí)例詳解

    這篇文章主要介紹了 C++ list的實(shí)例詳解的相關(guān)資料,希望通過本文大家能夠理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • 詳解C語言中typedef和#define的用法與區(qū)別

    詳解C語言中typedef和#define的用法與區(qū)別

    這篇文章主要給大家介紹了關(guān)于C語言中typedef和#define的的用法、區(qū)別,以及陷阱。文中通過示例進(jìn)行了詳細(xì)講解,感興趣的小伙伴可以了解一下
    2022-07-07
  • C++?OpenGL實(shí)現(xiàn)球形的繪制

    C++?OpenGL實(shí)現(xiàn)球形的繪制

    這篇文章主要主要為大家詳細(xì)介紹了如何利用C++和OpenGL實(shí)現(xiàn)球形的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-07-07
  • 淺析C++中的間接宏函數(shù)

    淺析C++中的間接宏函數(shù)

    這篇文章主要介紹了C++中的間接宏函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言版五子棋游戲的實(shí)現(xiàn)代碼

    C語言版五子棋游戲的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語言版五子棋游戲的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++日期類計(jì)算器的模擬實(shí)現(xiàn)舉例詳解

    C++日期類計(jì)算器的模擬實(shí)現(xiàn)舉例詳解

    兩個日期之間相隔天數(shù)的計(jì)算網(wǎng)上有許多的軟件,這里主要介紹如何使用C/C++語言來完成這樣的功能,下面這篇文章主要給大家介紹了關(guān)于C++日期類計(jì)算器的模擬實(shí)現(xiàn),需要的朋友可以參考下
    2023-04-04
  • C語言實(shí)現(xiàn)多項(xiàng)式的相加

    C語言實(shí)現(xiàn)多項(xiàng)式的相加

    這篇文章主要為大家介紹了C語言實(shí)現(xiàn)多項(xiàng)式的相加,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng)

    C++實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng)

    本文給大家分享的是使用C++實(shí)現(xiàn)的簡單的學(xué)生管理系統(tǒng)的代碼,主要是通過鏈表來實(shí)現(xiàn),非常簡潔,有需要的小伙伴可以參考下。
    2015-07-07

最新評論

威远县| 鲁山县| 进贤县| 正蓝旗| 察哈| 沾益县| 宣武区| 铜山县| 胶南市| 同仁县| 中牟县| 德兴市| 阿巴嘎旗| 同仁县| 监利县| 永泰县| 鄂托克前旗| 宜川县| 光山县| 额尔古纳市| 江山市| 合阳县| 玉环县| 丰顺县| 林州市| 静宁县| 抚顺县| 九寨沟县| 徐州市| 佳木斯市| 云安县| 循化| 余干县| 海门市| 尉氏县| 泗洪县| 凤阳县| 余江县| 商河县| 博湖县| 从江县|