错误处理
来自 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) |
一个混合类型,用于捕获和存储当前异常 (类) |
(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 兼容错误条件的宏 (宏常量) |
[编辑] 系统错误
头文件 <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,则中止程序。可能在发布版本中被禁用。 (函数宏) |
[编辑] 堆栈跟踪
定义在头文件
<stacktrace> 中 | |
(C++23) |
堆栈跟踪中评估的表示 (类) |
(C++23) |
调用序列的近似表示,由堆栈跟踪条目组成 (类模板) |
[编辑] 另请参阅
static_assert 声明 (C++11) |
执行编译时断言检查 |
C 文档 用于 错误处理
|