語句
try語句塊和異常處理
C++語言中,異常處理包括以下幾種:
- throw表達式,異常檢測部分使用throw表達式,來表示程序遇到了無法處理的問題。
- try語句塊(try block),異常處理部分使用try語句塊處理異常,try語句塊以關鍵字key開始,並以一個或多個catch子句結束。
- 一套異常類,用於在throw表達式和相關catch子句之間傳遞異常的具體信息。
1、try語句塊
try語句的通用語法形式是:
try
{
program-statements
}
catch (exception-declaration)
{
handler-statements
}
catch (exception-declaration)
{
handler-statements
}
2、標準異常
C++標準庫中定義了一組類,用於報告標準庫函數遇到的問題。這些類分別定義在以下四個頭文件中:
-
exception頭文件定義了最通用的異常類exception。此類只報告異常的發生,不提供任何額外信息。
-
stdexcept頭文件定義了幾種常用的異常類
-
new頭文件定義了bad_alloc異常類型
-
type_info頭文件定義了bad_cast異常類型
<stdexcept>
定義的異常類
exception | 最常見的問題 |
---|---|
runtime_error | 只有在運行時才能檢測出的問題 |
range_error | 運行時錯誤:生成的結果超出了有意義的值域範圍 |
overflow_error | 運行時錯誤:計算上溢 |
underflow_error | 運行時錯誤:計算下溢 |
logic_error | 程序邏輯錯誤 |
domain_error | 邏輯錯誤:參數對應的結果值不存在 |
invalid_error | 邏輯錯誤:無效參數 |
length_error | 邏輯錯誤:試圖創建一個超出改類型最大長度的對象 |
out_of_error | 邏輯錯誤:使用一個超出有效範圍的值 |