工欲善其事,必先利其器。在做一個項目時必定要先做好調(diào)試除錯的預(yù)備在面向過程編程的時代都是以檢測返回的錯誤代碼來判定錯誤,可是這種方法的缺點是假如編寫某一操作的時候可能出現(xiàn)的錯誤代碼(比如說硬件操作)太多,那么最終用戶將會陷入倒無窮無盡的檢測代碼中,可能會是這個樣子
UINT err=Functionxx(…);
if(err==xxx)
…
if(err==xxx)
…
…
…
省略100行
只有這樣程序才能在出現(xiàn)意外的時候有所相應(yīng)和恢復(fù),但是由于錯誤處理太龐大了最終用戶很可能這樣
if(Functionxx()!=SUCEEDED)
exit(0);
這樣某些可能可以恢復(fù)的操作也無法幸免了,(比如說網(wǎng)絡(luò)連接超時,終止運行太過分了吧,只要彈出個對話框就行了)
在面向?qū)ο缶幊痰臅r候,不可否認(rèn),很多人仍然還是這樣排錯的,其實各種面向?qū)ο蟮恼Z言都提供了異常處理的手段(比如說Object Pascal,C++,本文以C++為例)
下面是我的關(guān)于異常的一些使專心得
對于各種用戶來說,并不是每一種錯誤都是他關(guān)心的,非凡是小組開發(fā)的時候比如某一模塊是關(guān)于文件操作的,那么編寫這個模塊的程序員只要注重關(guān)于文件操作失敗的異常就行了,而網(wǎng)絡(luò)模塊的程序員只要知道網(wǎng)絡(luò)出錯的錯誤處理就行了,因此,我們可以定義一個這樣的類
class CBasicException
{
CBasicException(…);
char* GetDescription();
UINT GetErrorCode();
…
};
然后再從這個類繼續(xù)幾個子類
CFileException,CNetException…
然后和具體某一類錯誤相關(guān)的具體的異常分別從上面的類里面繼續(xù),比如文件打開失敗,空間不夠等等
相關(guān)推薦:
2012年軟考系統(tǒng)分析師考試60天完美復(fù)習(xí)計劃
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |