catch(c++異常處理)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

如果在try語句塊的程式段中(包括在其中調用的函式)發現了異常,且拋棄了該異常,則這個異常就可以被try語句塊後的某個catch語句所捕獲並處理,捕獲和處理的條件是被拋棄的異常的類型與catch語句的異常類型相匹配。

基本介紹

  • 中文名:catch
  • 隸屬:C++異常處理
catch的作用,深入了解catch,catch出現形式,

catch的作用

catch(…)能夠捕獲多種數據類型的異常對象,所以它提供給程式設計師一種對異常對象更好的控制手段,使開發的軟體系統有很好的可靠性。因此一個比較有經驗的程式設計師通常會這樣組織編寫它的代碼模組。
try{//程式中拋出異常 throw value;}catch(valuetype v){//例外處理程式段}
語法小結:throw拋出值,catch接受,當然,throw必須在“try語句塊”中才有效。

深入了解catch

一、程式接受到throw語句後就會自動調用析構器,把該域(try後的括弧內)對象clean up,然後再進
入catch語句(如果在循環體中就退出循環)。
這種機制會引起一些致命的錯誤,比如,當“類”有指針成員變數時(又是指針!),在 “類的構建器
”中的throw語句引起的退出,會導致這個指針所指向的對象沒有被析構。這裡很基礎,就不深入了,提
示一下,把指針改為類就行了,比如模板類來代替指針,在模板類的內部設定一個析構函式。
二、語句“throw;”拋出一個無法被捕獲的異常,即使是catch(...)也不能捕捉到,這時進入終止函式

catch出現形式

一般的catch出現的形式是:
try{}
catch(except1&){}
catch(except2&){}
catch(...){} //接受所有異常
一般都寫成引用(except1&),原因很簡單,效率。

相關詞條

熱門詞條

聯絡我們