命名空间
变体
操作

诊断库

来自 cppreference.cn
< cpp

目录

[编辑] 异常处理

头文件 <exception> 提供了几个与 C++ 程序中异常处理相关的类和函数。

定义于头文件 <exception>
标准库组件抛出的异常的基类
(类) [编辑]
异常对象的捕获和存储
检查异常处理当前是否正在进行
(函数) [编辑]
用于处理异常对象的共享指针类型
(类型别名) [编辑]
从异常对象创建 std::exception_ptr
(函数模板) [编辑]
std::exception_ptr 中捕获当前异常
(函数) [编辑]
std::exception_ptr 抛出异常
(函数) [编辑]
用于捕获和存储当前异常的混入类型
(类) [编辑]
抛出其参数,并混入 std::nested_exception
(函数模板) [编辑]
std::nested_exception 抛出异常
(函数模板) [编辑]
异常处理中的失败处理
定义于头文件 <exception>
当异常处理失败时调用的函数
(函数) [编辑]
std::terminate 调用的函数的类型
(类型别名) [编辑]
获取当前的 terminate_handler
(函数) [编辑]
更改要由 std::terminate 调用的函数
(函数) [编辑]
std::current_exception 无法复制异常对象时抛出的异常
(类) [编辑]
异常规范违规的处理 (直到 C++17)
(在 C++11 中弃用)(在 C++17 中移除)
当动态异常规范被违反时调用的函数
(函数) [编辑]
(在 C++11 中弃用)(在 C++17 中移除)
std::unexpected 调用的函数的类型
(类型别名) [编辑]
(在 C++11 中弃用)(在 C++17 中移除)
获取当前的 unexpected_handler
(函数) [编辑]
(在 C++11 中弃用)(在 C++17 中移除)
更改要由 std::unexpected 调用的函数
(函数) [编辑]

[编辑] 异常类别

头文件 <stdexcept> 中预定义了几个便利类,用于报告特定的错误情况。这些类可以分为两类:逻辑错误和运行时错误。逻辑错误是程序内部错误逻辑的结果,可能是可以预防的。运行时错误是由于程序范围之外的事件造成的,不易预测。

定义于头文件 <stdexcept>
异常类,指示违反逻辑前提条件或类不变量的情况
(类) [编辑]
异常类,用于报告无效参数
(类) [编辑]
异常类,用于报告域错误
(类) [编辑]
异常类,用于报告尝试超出最大允许大小的情况
(类) [编辑]
异常类,用于报告超出预期范围的参数
(类) [编辑]
异常类,指示仅在运行时可检测到的条件
(类) [编辑]
异常类,用于报告内部计算中的范围错误
(类) [编辑]
异常类,用于报告算术溢出
(类) [编辑]
异常类,用于报告算术下溢
(类) [编辑]
异常类,用于取消原子事务
(类模板)

[编辑] 错误号

定义于头文件 <cerrno>
宏,展开为 POSIX 兼容的线程局部错误号变量
(宏变量)[编辑]
标准 POSIX 兼容错误条件的宏
(宏常量) [编辑]

[编辑] 系统错误 (自 C++11 起)

头文件 <system_error> 定义了用于报告源自操作系统、流 I/O、std::future 或其他底层 API 的错误条件的类型和函数。

定义于头文件 <system_error>
错误类别的基类
(类) [编辑]
标识通用错误类别
(函数) [编辑]
标识操作系统错误类别
(函数) [编辑]
持有可移植的错误码
(类) [编辑]
(C++11)
std::error_condition 枚举,列出所有标准的 <cerrno> 宏常量
(类) [编辑]
持有平台相关的错误码
(类) [编辑]
用于报告具有 error_code 的条件的异常类
(类) [编辑]

[编辑] 断言

断言有助于在程序中实现前提条件的检查。

定义于头文件 <cassert>
如果用户指定的条件不为 true,则中止程序。可能在发布版本中禁用。
(函数宏) [编辑]

[编辑] 堆栈回溯 (自 C++23 起)

定义于头文件 <stacktrace>
堆栈回溯中求值的表示
(类) [编辑]
调用序列的近似表示,由堆栈回溯条目组成
(类模板) [编辑]

[编辑] 调试支持 (自 C++26 起)

定义于头文件 <debugging>
调用时暂停正在运行的程序
(函数) [编辑]
如果 std::is_debugger_present 返回 true,则调用 std::breakpoint
(函数) [编辑]
检查程序是否在调试器的控制下运行
(函数) [编辑]

[编辑] 参见

static_assert 声明 (C++11) 执行编译时断言检查[编辑]
C 文档 关于 错误处理