日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C++拋出異常技巧講解

C++語(yǔ)言與其他編程語(yǔ)言一樣,其中也包含有關(guān)于異常的處理。我們?cè)谶@里將會(huì)為大家詳細(xì)講解一下有關(guān)C++拋出異常的實(shí)現(xiàn)方法,及異常的應(yīng)用方式。希望大家可以從中獲得些幫助,以提高對(duì)此的理解程度。#t#

C++拋出異常(也稱為拋棄異常)即檢測(cè)是否產(chǎn)生異常,在C++中,其采用throw語(yǔ)句來(lái)實(shí)現(xiàn),如果檢測(cè)到產(chǎn)生異常,則拋出異常。該語(yǔ)句的格式為:
throw 表達(dá)式;

如果在try語(yǔ)句塊的程序段中(包括在其中調(diào)用的函數(shù))發(fā)現(xiàn)了異常,且拋棄了該異常,則這個(gè)異常就可以被try語(yǔ)句塊后的某個(gè)catch語(yǔ)句所捕獲并處理,捕獲和處理的條件是被拋棄的異常的類型與catch語(yǔ)句的異常類型相匹配。由于C++使用數(shù)據(jù)類型來(lái)區(qū)分不同的異常,因此在判斷異常時(shí),throw語(yǔ)句中的表達(dá)式的值就沒(méi)有實(shí)際意義,而表達(dá)式的類型就特別重要。

處理除數(shù)為0的異常。該范例將上述除數(shù)為0的異??梢杂胻ry/catch語(yǔ)句來(lái)捕獲異常,并使用throw語(yǔ)句來(lái)實(shí)現(xiàn)C++拋出異常,從而實(shí)現(xiàn)異常處理,實(shí)現(xiàn)代碼如代碼清單所示。

 
 
 
  1. #include //包含頭文件
  2. #include
  3. double fuc(double x, double y) //定義函數(shù)
  4. {
  5. if(y==0)
  6. {
  7. throw y; //除數(shù)為0,拋出異常
  8. }
  9. return x/y; //否則返回兩個(gè)數(shù)的商
  10. }
  11. void main()
  12. {
  13. double res;
  14. try //定義異常
  15. {
  16. res=fuc(2,3);
  17. cout<<"The result of x/y is : "<
  18. res=fuc(4,0); //出現(xiàn)異常
  19. }
  20. catch(double) //捕獲并處理異常
  21. {
  22. cerr<<"error of dividing zero.\n";
  23. exit(1); //異常退出程序
  24. }
  25. }

【運(yùn)行結(jié)果】在Visual C++中新建一個(gè)【C++ Source File】文件,輸入上述的代碼,編譯無(wú)誤后運(yùn)行。

【范例解析】上述代碼中,在主函數(shù)main()的第14~19行中使用了try語(yǔ)句定義異常,其中包含3條有可能出現(xiàn)異常的語(yǔ)句,它們?yōu)檎{(diào)用兩個(gè)數(shù)相除的函數(shù)。在代碼的第20~24行定義了異常處理,即捕獲異常后執(zhí)行該段代碼中的語(yǔ)句。此外,在函數(shù)fuc()的代碼5~8行通過(guò)throw語(yǔ)句實(shí)現(xiàn)C++拋出異常。


文章題目:C++拋出異常技巧講解
文章URL:http://m.5511xx.com/article/cdoejhh.html