日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元)

發布時間:2023/11/30 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 異常處理機制

? ? ? ? ? C++中使用try,throw和catch三個關鍵字來實現異常的觸發、拋出和處理的功能,具體通用語法形式如下:

? ? ? ? ? ? ? ? ? ? try{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if(true)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? normal program-statements;//沒有觸發異常時候執行的代碼

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if(false)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? throw(exception);? ? ? ? //出現錯誤,拋出的異常

? ? ? ? ? ? ? ? ? ? ?}catch(exception-declaration)? ?//異常捕捉

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?handler-statements;? ? ? //異常處理

? ? ? ? ? ? ? ? ? ??}.....

? ? ? ? ?C++標準庫定義了一組類,用于處理標準庫中遇到的問題(支持創建/拷貝/賦值操作),具體如下:

? ? ? ? ? ? ? ? ? ?頭文件<exception> 異常類exception 只報告異常,不提供其他信息。默認初始化

? ? ? ? ? ? ? ? ? ?頭文件<new> 異常類 bad_alloc? ?默認初始化

? ? ? ? ? ? ? ? ? ?頭文件<type_Info> 異常類 bad_cast? ?默認初始化

? ? ? ? ? ? ? ? ? ?頭文件<stdexcept> 異常類,如下所示:string/C風格字符串初始化

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? 異常類型定義了一個what的成員函數,無參數,返回值為C風格字符串,和異常類型相關。異常類采用顯示初始化的,則返回顯示初始化的值,異常類是采用默認初始化的,內容由編譯器決定。

2.case,范圍for語句,continue知識點總結

? ? ? ? ? ?在switch-case語句中,如果每個case語句后面不加上break中止符,則case語句會跨越標簽繼續執行下去。例如:

? ? ? ? ? ? ? ? ? char ch;cin>>ch;

? ? ? ? ? ? ? ? ? switch(ch){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?case 'a' : ++acnt;? ? ? ?//如果輸入的ch字符是‘a’,判斷第一個case語句滿足,執行完++acnt后

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?case 'e' : ++ecnt;? ? ? //會跳過第二個case語句,執行++ecnt;

? ? ? ? ? ? ? ? ? }

? ? ? ? 在switch-case語句中,case標簽不能單獨出現,后面應該跟上一條語句或者另外一個case標簽。也就是說,case標簽后面可以不接語句,但是冒號必須保留。

? ? ? ? 范圍for語句中的expression(范圍for語句格式:for(declaration : expression) statement)必須是一個序列,其中序列的頭指針和尾后指針已經確定,因此在使用范圍for語句的時候,不允許往序列中增加或刪除元素(任何破壞頭指針和尾后指針的行為都不允許)

? ? ? ?continue不允許直接使用在switch-case中,具體原因是continue是跳出當前循環并進入下一次循環,而是switch-case只有一次循環操作。

?

? ? ? ? ? ? ? ? ? ?

總結

以上是生活随笔為你收集整理的《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。