C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- std::exception_ptr
- std::error_code
- std::error_condition
- std::terminate
- std::exception
- std::current_exception
- std::rethrow_exception
- std::make_exception_ptr
- std::unexpected
- std::uncaught_exception, std::uncaught_exceptions
- assert
- errno
- std::nested_exception
- std::throw_with_nested
- std::rethrow_if_nested
- std::terminate_handler
- std::get_terminate
- std::set_terminate
- std::bad_exception
- std::unexpected_handler
- std::get_unexpected
- std::set_unexpected
- 错误号
- std::logic_error
- std::invalid_argument
- std::domain_error
- std::length_error
- std::out_of_range
- std::runtime_error
- std::range_error
- std::overflow_error
- std::underflow_error
- std::tx_exception
- std::error_category
- std::generic_category
- std::system_category
- std::errc
- std::system_error
- 注释
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
错误处理
异常处理
头文件 <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++17 中移除) |
违背动态异常说明时调用的函数 (函数) |
(C++17 中移除) |
std::unexpected 所调用的函数类型 (typedef) |
(C++11)(C++17 中移除) |
获得当前的 unexpected_handler (函数) |
(C++17 中移除) |
更改要被 std::unexpected 调用的函数 (函数) |
异常类别
数个便利异常类预定义于头文件 <stdexcept>
以报告特定的错误条件。这些类可分为二个类别:逻辑错误与运行时错误。逻辑错误是程序中错误逻辑的后果,而且可以避免。运行时错误来源于程序作用域以外的事件,且无法简单预测。
定义于头文件
<stdexcept> | |
指示违背逻辑前提条件或类不变量的异常类 (类) | |
报告非法参数的异常类 (类) | |
报告定义域错误的异常类 (类) | |
报告试图超出最大允许大小的异常类 (类) | |
报告参数落在期待范围外的异常类 (类) | |
指示条件只可于运行时检测的异常类 (类) | |
报告内部计算中值域错误的异常类 (类) | |
报告算术上溢的异常类 (类) | |
报告算术下溢的异常类 (类) | |
(TM TS) |
取消原子事务的异常类 (类模板) |
错误号
定义于头文件
<cerrno> | |
展开成 POSIX 兼容的线程局域错误号变量的宏 (宏变量) | |
兼容标准 POSIX 的错误条件的宏 (宏常量) |
断言
帮助实现程序中前置条件检查的断言。
定义于头文件
<cassert> | |
若用户指定的条件非 true 则中断程序。可以在发行构建中禁用 (宏函数) |
系统错误
头文件 <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 的错误条件的异常类 (类) |
参阅
静态断言 | 进行编译时断言检查 (C++11 起) |