-
catch
(c++異常處理)
鎖定
如果在try語句塊的程序段中(包括在其中調用的函數)發現了異常,且拋棄了該異常,則這個異常就可以被try語句塊後的某個catch語句所捕獲並處理,捕獲和處理的條件是被拋棄的異常的類型與catch語句的異常類型相匹配。
- 中文名
- catch
- 隸 屬
- C++異常處理
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(...){} //接受所有異常
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:10次歷史版本
- 最近更新: canguanxihu