真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用C++異常處理中系統(tǒng)函數(shù)terminate的調(diào)用-創(chuàng)新互聯(lián)

如何使用C++異常處理中系統(tǒng)函數(shù)terminate的調(diào)用?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

10年積累的網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有鉛山免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

                                                           C++中處理異常的過程是這樣的:在執(zhí)行程序發(fā)生異常,可以不在本函數(shù)中處理,而是拋出一個錯誤信息,把它傳遞給上一級的函數(shù)來解決,上一級解決不了,再傳給其上一級,由其上一級處理。如此逐級上傳,直到最高一級還無法處理的話,運(yùn)行系統(tǒng)會自動調(diào)用系統(tǒng)函數(shù)terminate,

學(xué)會使用terminate函數(shù)有助于異常處理

一 當(dāng)一個異常產(chǎn)生的時候調(diào)用terminate函數(shù),代碼:

  1. [cpp] view plaincopyprint?
    #include    
    #include    
    using namespace std;  
    void on_terminate(){  
    cout<<"terninate function called!"<

terminate被調(diào)用的情況:

1 當(dāng)發(fā)送一個異常,并且構(gòu)造函數(shù)產(chǎn)生異常
2 當(dāng)發(fā)送一個異常,或者析構(gòu)函數(shù)產(chǎn)生異常
3 一個靜態(tài)對象的構(gòu)造或者析構(gòu)發(fā)送一個異常
4 以atexit注冊的函數(shù)發(fā)生異常的時候
5 自定義一個異常,但是實際上沒有異常產(chǎn)生的時候
6 調(diào)用缺省的unexcepted()函數(shù)時候
例子說話:

  1. [cpp] view plaincopyprint?
    #include    
    #include    
    using namespace std;  
    void on_terminate(){  
    cout<<"terminate function called!"<

    當(dāng)一個函數(shù)拋出了一個throw異常的時候,如果該函數(shù)內(nèi)部構(gòu)造了對象的話,系統(tǒng)會先對該對象調(diào)用析構(gòu)函數(shù),當(dāng)對象調(diào)用完了析構(gòu)函數(shù)以后,才開始執(zhí)行異常的拋出工作。

同時在具有繼承關(guān)系的類的異常中,子類的異常應(yīng)該放在前面,而基類的異常應(yīng)該放到最后面,這樣可以使子類的異常先獲得處理,父類的異常最后處理。

  1. [cpp] view plaincopyprint?
    #include    
    using namespace std;   
    class X   
    {   
    public:   
     class Trouble {};   //注意:類中嵌套類的申明和定義,學(xué)習(xí)!!!    
      class small: public Trouble {};   
      class big:public Trouble {};//類中的繼承!!!    
     void f(){   
     throw big();   
     }   
    };   
    int main()   
    {   
      X x;   
     try{   
       x.f();   
      }   
     catch(X::Trouble &)   
      {   
       cout<<"caught Trouble"<

    如果這樣的話,拋出的big()類型異常則被trouble類壟斷,應(yīng)該倒著寫才可以實現(xiàn)順序捕獲所有異常,另外使用...可以捕捉所有的異常,這個應(yīng)該放到最后面才可以。

省略號異常處理器不允許接受任何參數(shù),所以無法得到任何相關(guān)異常的信息,也無法知道異常的類型,這種catch語句經(jīng)常用于清理資源并重新拋出所捕獲的異常。

關(guān)于如何使用C++異常處理中系統(tǒng)函數(shù)terminate的調(diào)用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道了解更多相關(guān)知識。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


文章題目:如何使用C++異常處理中系統(tǒng)函數(shù)terminate的調(diào)用-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://weahome.cn/article/dgcdhs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部