以前使用的不多,轉個帖子,從現在開始有所改變吧!
try,catch, throw的含義就很清楚,但怎麼使用,我還是過了好多年才明白一些
先看乙個不好的例子
//----------------- 不好的** -----------------
class ctest1;
class ctest2;
class ctest3;
void badcode()
//new ctest2
ctest2 * ptest2 = new ctest2;
//do something
bret = dosomething();
if (!bret)
//new ctest3
ctest3 * ptest3 = new ctest3;
//do something
bret = dosomething();
if (!bret)
//release
delete ptest1;
delete ptest2;
delete ptest3;
} 下面是我個人比較喜歡的寫法
//--------- 好的例子 ---------------
class ctest1;
class ctest2;
class ctest3;
void badcode()
catch(...) }
什麼時候使用try,catch,什麼時候不用;什麼時候用throw,什麼時候不用。工作了很多年才明白。
我個人的理解是:
1。在private或者protected的成員函式不使用try,catch,而只使用throw
2。如果在private或者protected的成員函式需要使用try,catch,那麼就要使用rethrow
3。在public成員函式裡使用try,catch
4。如果該類相對於整個專案來說是屬於被呼叫層,那麼public成員函式也可以不使用try,catch
5。如果呼叫第三方的**,我一般都會用try,catch
我個人的習慣是把private或者protected成員函式的名字使用字首__,public函式不用
先看乙個我不喜歡的寫法
//------------- try, catch, throw 例子,不喜歡的寫法 ------------
class ctest
//--------- init ------------
int ctest:init()
catch(int & err) }
//---------- __inita ----------
int ctest::__inita()
catch(int & err) }
__initb, ___initc和___inita類似
下面是我個人比較喜歡的寫法
//------------- try, catch, throw 例子,喜歡的寫法 ------------
class ctest
//--------- init ------------
int ctest:init()
catch(int & err) }
//---------- __inita ----------
int ctest::__inita()
__initb, ___initc和___inita類似
如何使用 滅火器如何使用
滅火器的種類不同使用方法也不相同,下面單獨針對乾粉滅火器 泡沫滅火器和二氧化碳滅火器使用方法說明。一 乾粉滅火器的使用方法 適用範圍 適用於撲救各種易燃 可燃液體和易燃 可燃氣體火災,以及電器裝置火災。1 右手拖著壓把,左手拖著滅火器底部,輕輕取下滅火器。2 右手提著滅火器到現場。3 除掉鉛封。4 ...
如何使用 如何正確使用定速巡航
現在隨著造車技術的不斷創新和改進,越來越多的高科技功能都應用到了汽車上,不僅提供了實用性,也讓我們享受到了科技的快感。今天我們就聊一聊一項可以實現車輛自動駕駛的功能 定速巡航。定速巡航 cruise control system 簡稱ccs,簡單的理解就是給車子設定乙個速度值,駕駛員只需要掌握方向,...
如何使用CFileDialog
cfiledialog的語法 cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dword dwflags ofn hidereadonly ofn overwriteprompt,l...