2012軟件水平考試解析之異常的使用

字號(hào):

2012年軟件水平考試解析之異常的使用心得
    工欲善其事,必先利其器。在做一個(gè)項(xiàng)目時(shí)必定要先做好調(diào)試除錯(cuò)的預(yù)告在面向過程編程的時(shí)代都是以檢測(cè)返回的錯(cuò)誤代碼來剖斷錯(cuò)誤,可是這種體例的錯(cuò)誤謬誤是假如編寫某一操作的時(shí)辰可能呈現(xiàn)的錯(cuò)誤代碼(好比說硬件操作)太多,那么最終用戶將會(huì)陷入倒無限無盡的檢測(cè)代濾魷脯可能會(huì)是這個(gè)樣子
    UINT err=Functionxx(…);
    if(err==xxx)
    …
    if(err==xxx)
    …
    …
    …
    省略100行
    只有這樣軌范才能在呈現(xiàn)意外的時(shí)辰有所響應(yīng)和恢復(fù),可是因?yàn)殄e(cuò)誤措置太復(fù)雜了最終用戶很可能這樣
    if(Functionxx()!=SUCEEDED)
    exit(0);
    這樣某些可能可以恢復(fù)的操作也無法幸免了,(好比說收集毗連超時(shí),終止運(yùn)行過分度了吧,只要彈出個(gè)對(duì)話框就行了)
    在面向?qū)ο缶幊痰臅r(shí)辰,不成否認(rèn),良多人仍然仍是這樣排錯(cuò)的,其實(shí)各類面向?qū)ο蟮恼f話都供給了異常措置的手段(好比說Object Pascal,C++,本文以C++為例)
    下面是我的關(guān)于異常的一些使專心得
    對(duì)于各類用戶來說,并不是每一種錯(cuò)誤都是他關(guān)心的,不凡是小組開發(fā)的時(shí)辰好比某一模塊是關(guān)于文件操作的,那么編寫這個(gè)模塊的軌范員只要注重關(guān)于文件操作失蹤敗的異常就行了,而收集模塊的軌范員只要知道收集犯錯(cuò)的錯(cuò)誤措置就行了,是以,我們可以界說一個(gè)這樣的類
    class CBasicException
    {
    CBasicException(…);
    char* GetDescription();
    UINT GetErrorCode();
    …
    };
    然后再從這個(gè)類繼續(xù)幾個(gè)子類
    CFileException,CNetException…
    然后和具體某一類錯(cuò)誤相關(guān)的具體的異常分袂從膳縵沔的類瑯縵沔繼續(xù),好交鋒件打開失蹤敗,空間不夠等等