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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++ Primer 5th笔记(chap 18 大型程序工具)异常处理

發布時間:2025/3/21 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 18 大型程序工具)异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 異常處理 ( exception handling)

允許程序中獨立開發的部分能夠在運行時就出現的問題進行通信并做出相應的處理。

異常使得我們能夠將問題的檢測與解決過程分離開來。 程序的一部分負責檢測問題的出現, 然后解決該問題的任務傳遞給程序的另一部分

1.1 棧展開( stack unwinding)

當拋出一個異常后, 程序暫停當前函數的執行過程并立即開始尋找與異常匹配的catch 子句。 當 throw 出現在一個 try 語句塊( try block) 內時, 檢查與該 try 塊關聯的 catch 子句。 如果找到了匹配的 catch, 就使用該 catch 處理異常。 如果這一步沒找到匹配的 catch 且該 try 語句嵌套在其他 try 塊中, 則繼續檢查與外層 try 匹配的catch 子句。 如果還是找不到匹配的 catch, 則退出當前的函數, 在調用當前函數的外層函數中繼續尋找。

當找不到匹配的 catch時, 程序將調用標準庫函數 terminate, 顧名思義, terminate 負責終止程序的執行過程

1.2 棧展開過程中對象被自動銷毀

1.3 析構函數與異常

如果一個塊分配了資源, 并且在負責釋放這些資源的代碼前[(D 發生了異常, 則釋放資源的代碼
將不會被執行。 另 --方面, 類對象分配的資源將由類的析構函數負責釋放

1.4 異常對象( exception object )

編譯器使用異常拋出表達式來對異常對象進行拷貝初始化

當拋出一條表達式時, 該表達式的靜態編譯時類型決定了異常對象的類型。 因為很多情況下程序拋出的表達式類型來自于某個繼承體系。 如果一條 throw 表達式解引用一個基類指針, 而該指針實際指向的
是派生類對象, 則拋出的對象將被切掉一部分, 只有基類部分被拋出。

總結

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 18 大型程序工具)异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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