Diagnostics library
From cppreference.net
<
cpp
目录 |
异常处理
头文件 <exception> 提供了多个与 C++ 程序中异常处理相关的类和函数。
|
定义于头文件
<exception>
|
|
|
标准库组件抛出异常的基类
(类) |
|
异常对象的捕获与存储 |
|
|
(
C++20 中移除*
)
(C++17)
|
检查异常处理是否正在进行中
(函数) |
|
(C++11)
|
用于处理异常对象的共享指针类型
(类型定义) |
|
(C++11)
|
从异常对象创建
std::exception_ptr
(函数模板) |
|
(C++11)
|
在
std::exception_ptr
中捕获当前异常
(函数) |
|
(C++11)
|
从
std::exception_ptr
抛出异常
(函数) |
|
(C++11)
|
用于捕获和存储当前异常的混入类型
(类) |
|
(C++11)
|
将其参数与
std::nested_exception
混合后抛出
(函数模板) |
|
(C++11)
|
从
std::nested_exception
抛出异常
(函数模板) |
异常处理失败的处理 |
|
|
定义于头文件
<exception>
|
|
|
异常处理失败时调用的函数
(函数) |
|
|
由
std::terminate
调用的函数类型
(类型定义) |
|
|
(C++11)
|
获取当前的 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>
|
|
|
指示违反逻辑前置条件或类不变量的异常类
(类) |
|
|
报告无效参数的异常类
(类) |
|
|
报告定义域错误的异常类
(类) |
|
|
报告尝试超出允许的最大长度的异常类
(类) |
|
|
报告超出预期范围参数的异常类
(类) |
|
|
指示仅在运行时可检测到异常的异常类
(类) |
|
|
报告内部计算中范围错误的异常类
(类) |
|
|
报告算术上溢的异常类
(类) |
|
|
报告算术下溢的异常类
(类) |
|
|
(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)
|
std::error_condition
枚举,列出所有标准
<cerrno>
宏常量
(类) |
|
(C++11)
|
持有平台相关错误码
(类) |
|
(C++11)
|
用于报告具有 error_code 的条件的异常类
(类) |
断言
断言有助于在程序中实现前置条件的检查。
|
定义于头文件
<cassert>
|
|
|
若用户指定的条件不为
true
则终止程序。发行版本中可能被禁用。
(函数宏) |
|
堆栈追踪 (自 C++23 起)
|
定义于头文件
<stacktrace>
|
|
|
(C++23)
|
栈踪中单个调用记录的表示
(类) |
|
(C++23)
|
由栈踪条目组成的调用序列的近似表示
(类模板) |
调试支持 (since C++26)
|
定义于头文件
<debugging>
|
|
|
(C++26)
|
调用时暂停正在运行的程序
(函数) |
|
(C++26)
|
若
std::is_debugger_present
返回
true
则调用
std::breakpoint
(函数) |
|
(C++26)
|
检查程序是否在调试器控制下运行
(函数) |
参见
static_assert
声明
(C++11)
|
执行编译时断言检查 |
|
C 文档
关于
错误处理
|
|