診斷函式庫
出自 cppreference.com
< cpp
目錄 |
[編輯] 異常處理
<exception> 標頭檔提供了數個與 C++ 程式異常處理相關的類別與函式。
| 定義於標頭檔
<exception> | |
| 標準函式庫元件所拋出異常的基底類別 (類別) | |
異常物件的擷取與儲存 | |
| (C++20 移除*)(C++17) |
檢查目前是否正在處理異常 (函式) |
| (C++11) |
用於處理異常物件的共享指標類型 (typedef) |
| (C++11) |
從異常物件建立一個 std::exception_ptr (函式模板) |
| (C++11) |
將當前異常擷取至 std::exception_ptr (函式) |
| (C++11) |
拋出來自 std::exception_ptr 的異常 (函式) |
| (C++11) |
用於擷取並儲存當前異常的混入 (mixin) 類型 (類別) |
| (C++11) |
拋出其參數,並混入 std::nested_exception (函式模板) |
| (C++11) |
拋出來自 std::nested_exception 的異常 (函式模板) |
異常處理失敗時的處理 | |
| 定義於標頭檔
<exception> | |
| 當異常處理失敗時呼叫的函式 (函式) | |
| std::terminate 所呼叫函式的類型 (typedef) | |
| (C++11) |
獲取當前的 terminate_handler (函式) |
| 更改 std::terminate 所呼叫的函式 (函式) | |
| 當 std::current_exception 無法複製異常物件時所拋出的異常 (類別) | |
異常規範違規的處理 (C++17 前) | |
| (於 C++11 廢棄)(於 C++17 移除) |
當動態異常規範被違反時呼叫的函式 (函式) |
| (於 C++11 廢棄)(於 C++17 移除) |
std::unexpected 所呼叫函式的類型 (typedef) |
| (於 C++11 廢棄)(於 C++17 移除) |
獲取當前的 unexpected_handler(函式) |
| (於 C++11 廢棄)(於 C++17 移除) |
更改 std::unexpected 所呼叫的函式 (函式) |
[編輯] 異常類別
<stdexcept> 標頭檔中預定義了數個便利類別,用於報告特定的錯誤狀況。這些類別可分為兩大類:邏輯錯誤與執行時期錯誤。邏輯錯誤是程式內部邏輯錯誤的結果,通常是可以預防的;執行時期錯誤是由程式範疇之外的事件引起,不易預測。
| 定義於標頭檔
<stdexcept> | |
| 用於指示邏輯前提或類別不變量違規的異常類別 (類別) | |
| 用於報告無效參數的異常類別 (類別) | |
| 用於報告領域錯誤 (domain error) 的異常類別 (類別) | |
| 用於報告嘗試超過允許的最大大小的異常類別 (類別) | |
| 用於報告超出預期範圍之參數的異常類別 (類別) | |
| 用於指示僅能在執行時期檢測到之狀況的異常類別 (類別) | |
| 用於報告內部計算中範圍錯誤的異常類別 (類別) | |
| 用於報告算術溢位的異常類別 (類別) | |
| 用於報告算術下溢的異常類別 (類別) | |
| (TM TS) |
用於取消原子交易的異常類別 (類別模板) |
[編輯] 錯誤碼
| 定義於標頭檔
<cerrno> | |
| 展開為與 POSIX 相容的執行緒區域錯誤碼變數的巨集 (巨集變數) | |
| 用於標準 POSIX 相容錯誤狀況的巨集 (巨集常數) | |
[編輯] 系統錯誤 (C++11 起)
<system_error> 標頭檔定義了用於報告源自作業系統、串流 I/O、std::future 或其他低階 API 之錯誤狀況的類型與函式。
| 定義於標頭檔
<system_error> | |
| (C++11) |
錯誤類別的基底類別 (類別) |
| (C++11) |
識別通用錯誤類別 (函式) |
| (C++11) |
識別作業系統錯誤類別 (函式) |
| (C++11) |
持有可移植的錯誤碼 (類別) |
| (C++11) |
列出所有標準 <cerrno> 巨集常數的 std::error_condition 列舉 (類別) |
| (C++11) |
持有與平台相關的錯誤碼 (類別) |
| (C++11) |
用於報告帶有 error_code 之狀況的異常類別 (類別) |
[編輯] 斷言
斷言有助於在程式中實現前提條件的檢查。
| 定義於標頭檔
<cassert> | |
| 若使用者指定的條件不為 true,則中止程式。在發行版 (release builds) 中可能會被停用。 (函式巨集) | |
[編輯] 堆疊追蹤 (C++23 起)
| 定義於標頭檔
<stacktrace> | |
| (C++23) |
堆疊追蹤中求值結果的表示 (類別) |
| (C++23) |
由堆疊追蹤條目組成的呼叫序列近似表示 (類別模板) |
[編輯] 除錯支援 (C++26 起)
| 定義於標頭檔
<debugging> | |
| (C++26) |
呼叫時暫停執行中的程式 (函式) |
| (C++26) |
若 std::is_debugger_present 回傳 true,則呼叫 std::breakpoint (函式) |
| (C++26) |
檢查程式是否正在除錯器的控制下執行 (函式) |
[編輯] 參見
static_assert 宣告 (C++11) |
執行編譯時期斷言檢查 |
| C 文件 關於 錯誤處理
| |