STL學習筆記 ---- 異常

作者: winterTTr (轉載請註明)  資料來源:《STL標準庫》

 

 

 

  1. 標準異常類

stl exception graph

 

 

爲了語言支持而使用的異常類
  • bad_alloc :在new失敗的時候,被拋出(除非使用nothrow版本的new)
  • bad_cast  :在使用dynamic_cast轉換“引用類型”失敗的時候拋出
  • bad_typeid:如果傳給typeid操作符的是0或者空指針時拋出
  • bad_exception:用來處理未期望的異常出現的情況,使用unexpected()函數進行相應。當函數拋出其異常聲明類表中未聲明的異常類型時unexpected()函數會被調用
爲了標準庫使用的異常類

這些異常類,基本上都是從logic_error繼承而來的,理論上講,這些異常都能夠在一定程度上被避免。

  • invalid_argument無效的參數
  • length_error 長度錯誤,例如向字符串添加了太多的字符
  • out_of_range 超出邊界,例如:訪問隨機訪問對象時索引超出最大size
  • domain_error域名錯誤
  • ios_base::failure專門用於I/O的問題,例如:當一個流因爲錯誤或者文件結尾而改變狀態的時候
編程範圍之外的異常類

這些類通常繼承自runtime_error,例如:range_error,overflow_error,underflow_error

 

標準庫拋出的異常

一般來說,標準庫本身可能會拋出下面這幾種異常range_error,out_of_range,invalid_argument。當然不排除某些庫自己實現的其他異常。

 

 

異常對應的頭文件

<exception>             bad_exception,exception

<new>                      bad_alloc

<typeinfo>               bad_cast,bad_typeid

<ios>                       ios_base::failure

<stdexcept>             其他的異常類

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章