诊断库
来自 cppreference.cn
< 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 文档 关于 错误处理
|