欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解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)文章

  • 深入理解C++函數(shù)棧幀

    深入理解C++函數(shù)棧幀

    本文主要介紹了C++函數(shù)棧幀,詳細(xì)的介紹了C++函數(shù)棧幀的概念以及使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 一篇文章帶你了解C語言二分查找

    一篇文章帶你了解C語言二分查找

    這篇文章主要為大家詳細(xì)介紹了C語言二分查找法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C語言超詳細(xì)講解函數(shù)棧幀的創(chuàng)建和銷毀

    C語言超詳細(xì)講解函數(shù)棧幀的創(chuàng)建和銷毀

    我們知道c語言中函數(shù)都是被調(diào)用的,main函數(shù)里面能調(diào)用其他函數(shù),其實(shí)main函數(shù)也是被別的函數(shù)調(diào)用的,下面通過本文給大家分享c語言函數(shù)棧幀的創(chuàng)建和銷毀過程,一起看看吧
    2022-05-05
  • QT編寫tcp通信工具(Server端)

    QT編寫tcp通信工具(Server端)

    這篇文章主要為大家詳細(xì)介紹了QT編寫tcp通信工具,一個類似網(wǎng)上常見的網(wǎng)絡(luò)調(diào)試工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言二叉排序(搜索)樹實(shí)例

    C語言二叉排序(搜索)樹實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C語言二叉排序樹實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解C/C++如何獲取路徑下所有文件及其子目錄的文件名

    詳解C/C++如何獲取路徑下所有文件及其子目錄的文件名

    這篇文章主要為大家詳細(xì)介紹了在C/C++中如何獲取路徑下所有文件及其子目錄的文件名,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • Opencv實(shí)現(xiàn)用于圖像分割分水嶺算法

    Opencv實(shí)現(xiàn)用于圖像分割分水嶺算法

    這篇文章主要為大家詳細(xì)介紹了Opencv實(shí)現(xiàn)用于圖像分割分水嶺算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言文件操作之fread函數(shù)詳解

    C語言文件操作之fread函數(shù)詳解

    fread()函數(shù)用來從指定文件中讀取塊數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于C語言文件操作之fread函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C/C++產(chǎn)生隨機(jī)數(shù)函數(shù)簡單介紹

    C/C++產(chǎn)生隨機(jī)數(shù)函數(shù)簡單介紹

    這篇文章主要為大家詳細(xì)介紹了C/C++產(chǎn)生隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)方法,如何使用C/C++產(chǎn)生隨機(jī)數(shù)函數(shù),感興趣的小伙伴們可以參考一下
    2016-04-04
  • 使用OpenCV檢測圖像中的矩形

    使用OpenCV檢測圖像中的矩形

    這篇文章主要為大家詳細(xì)介紹了使用OpenCV檢測圖像中的矩形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評論