• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            happem

            異常處理的原理

            傳統(tǒng)的錯誤處理是用不同的數(shù)值來表示不同類型的錯誤,其表達(dá)能力很有限,因為一個數(shù)字包含的信息量太少,而C++異常處理機(jī)制將異常類型化,顯然一個類型要比一個數(shù)字包含的信息量大得多。

            比如我們常用的函數(shù)fopen(),當(dāng)打開文件失敗是返回NULL,按照傳統(tǒng)的錯誤處理方法,在調(diào)用Fopen()后立即檢查其返回值,如果為NULL就進(jìn)行錯誤處理,如果將返回NULL改為拋出異常OpenFailed,那么我們就不用在調(diào)用fopen()后馬上檢查返回值,而是在調(diào)用函數(shù)內(nèi)部或者更高層的調(diào)用者那里設(shè)置異常處理器來捕獲這個異常,C++保證:如果一個異常在拋出點(diǎn)沒有得到處理,那么它將一直拋向上層調(diào)用者,直至main()函數(shù),直到找到一個類型匹配的異常處理器,否則調(diào)用terminate()結(jié)束程序。

            可以看出:異常處理機(jī)制實(shí)際上是一種運(yùn)行時通知機(jī)制。

             Class DevidedByZero{}

             Double Devidedouble adouble b

             {

            Ifabs(b)::numeric_limits::epsilon()

             {

               Throw DevidedByZero()//提前檢測異常發(fā)生條件并拋出自定義異常

                Return a/b;            //這才是可能真正發(fā)出錯誤的地方

            }

            Void test()

             {

             Double x=100,y=20.5

             Try{

               Cout<拋出異常DevidedByZero

            }

            CatchDevidedByZero&{

             Cerr<< “ Devided by zero!”<

            }

            }

            posted on 2012-08-23 14:39 happem 閱讀(452) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久这里只有精品首页| 一本一本久久aa综合精品| 亚洲国产天堂久久综合网站| 国产999精品久久久久久| 久久精品国产一区二区三区| 亚洲va久久久噜噜噜久久狠狠| 91久久国产视频| 亚洲精品无码久久久久| 精品久久综合1区2区3区激情| 色88久久久久高潮综合影院| 久久久精品视频免费观看| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 国产午夜精品久久久久九九电影| 色综合久久天天综线观看| 国产精品一区二区久久国产| 亚洲天堂久久久| 久久香蕉国产线看观看99| 亚洲乱码中文字幕久久孕妇黑人| 久久97久久97精品免视看秋霞| 久久99精品国产麻豆| 波多野结衣久久一区二区| 久久天天躁狠狠躁夜夜av浪潮| 久久99国产综合精品| 久久久久久久精品妇女99| 久久中文精品无码中文字幕| 久久精品成人免费网站| 无码超乳爆乳中文字幕久久 | 综合久久给合久久狠狠狠97色| 色综合久久88色综合天天| 久久久无码精品亚洲日韩按摩| 久久久久久精品免费免费自慰| 欧美精品九九99久久在观看| 久久综合九色综合欧美就去吻| 久久久久女教师免费一区| 久久免费视频一区| 久久久久久久免费视频| 伊人久久大香线蕉无码麻豆| 亚洲午夜无码AV毛片久久| 无码人妻久久一区二区三区蜜桃| 久久九九兔免费精品6| 浪潮AV色综合久久天堂|