• <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

            異常處理的原理

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

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

            可以看出:異常處理機制實際上是一種運行時通知機制。

             Class DevidedByZero{}

             Double Devidedouble a,double b

             {

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

             {

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

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

            }

            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)  編輯 收藏 引用

            久久精品国产免费观看三人同眠| 久久精品欧美日韩精品| 久久人人爽人人爽AV片| 亚洲Av无码国产情品久久| 日韩人妻无码精品久久免费一| 激情伊人五月天久久综合| 久久99精品久久久久久秒播| 国内高清久久久久久| 久久精品国产91久久综合麻豆自制| 狠狠人妻久久久久久综合蜜桃| 亚洲人成网亚洲欧洲无码久久| 国产激情久久久久影院老熟女| 国内精品伊人久久久久妇| 国产亚洲成人久久| 国内精品九九久久久精品| 久久九九久精品国产免费直播| 久久996热精品xxxx| 国产精品美女久久久m| 亚洲国产精品无码久久SM| 少妇被又大又粗又爽毛片久久黑人| 久久99毛片免费观看不卡| 欧美黑人激情性久久| 大香伊人久久精品一区二区 | 99久久免费国产特黄| 亚洲性久久久影院| 久久人人超碰精品CAOPOREN| 久久国产精品99久久久久久老狼| 性欧美丰满熟妇XXXX性久久久 | 久久国产精品无码一区二区三区 | 69国产成人综合久久精品| 久久精品中文无码资源站| 亚洲伊人久久成综合人影院 | 伊人久久大香线蕉AV色婷婷色| 色综合久久中文字幕综合网| 久久无码一区二区三区少妇| 久久se这里只有精品| 亚洲成av人片不卡无码久久| 亚洲国产天堂久久综合| 久久亚洲精品成人无码网站| 久久久久久精品无码人妻| 久久久久人妻一区精品性色av|