命名空间
变体
操作

std::exception

来自 cppreference.cn
< cpp‎ | error
 
 
实用工具库
通用工具
函数对象
位操作 (C++20 起)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20 起)(C++20 起)(C++20 起)  
(C++20 起)(C++20 起)(C++20 起)
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
定义于头文件 <exception>
class exception;

提供一致的接口来通过 throw 表达式 处理错误。

标准库生成的所有异常都继承自 std::exception

std::exception 的所有成员函数都是 constexpr

(自 C++26 起)

目录

[编辑] 成员函数

构造异常对象
(公有成员函数)
[虚函数]
销毁异常对象
(虚公有成员函数) [编辑]
复制异常对象
(公有成员函数) [编辑]
[虚函数]
返回解释性字符串
(虚公有成员函数) [编辑]

[编辑] 标准异常要求

每个从 std::exception 派生的标准库类 T 都具有以下公共可访问的成员函数,它们都是 不抛出异常退出(直到 C++11)具有非抛出异常规范(自 C++11 起)

复制构造函数和复制赋值运算符满足以下后置条件

  • 如果两个对象 lhsrhs 都具有动态类型 T 并且 lhsrhs 的副本,则 std::strcmp(lhs.what(), rhs.what()) 等于 0

每个此类 Twhat() 成员函数都满足为 std::exception::what() 指定的约束。

[编辑] 标准异常

[编辑] 注释

特性测试 Std 特性
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr 用于异常类型

[编辑] 缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

DR 应用于 已发布行为 正确行为
LWG 471 C++98 对从 std::exception 派生的标准库类没有要求 已添加