診斷庫
來自 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> | |
表示邏輯前置條件或類不變式違規的異常類 (類) | |
報告無效引數的異常類 (類) | |
報告域錯誤的異常類 (類) | |
報告嘗試超出最大允許大小的異常類 (類) | |
報告引數超出預期範圍的異常類 (類) | |
表示僅在執行時可檢測到的條件的異常類 (類) | |
報告內部計算中範圍錯誤的異常類 (類) | |
報告算術溢位的異常類 (類) | |
報告算術下溢的異常類 (類) | |
(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,則中止程式。在釋出版本中可能會停用。 (函式宏) |
[編輯] 棧回溯 (自 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 文件 關於 錯誤處理
|