错误处理
来自cppreference.com
< cpp
目录 |
[编辑] 异常处理
头文件 <exception>
提供数个关联于 C++ 程序中异常处理的类与函数。
定义于头文件
<exception> | |
标准库组件抛出的异常的基类 (类) | |
异常对象的捕获与存储 | |
(C++17 中弃用) (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 的错误条件的宏 (宏常量) |
[编辑] 断言
帮助实现程序中前置条件检查的断言。
静态断言 | 进行编译时断言检查 (C++11 起) |
定义于头文件
<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 文档
|