Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
定义于头文件 <exception>
class exception ;

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

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

std::exception 的所有成员函数均为 constexpr

(since C++26)

目录

成员函数

构造异常对象
(公开成员函数)
[virtual]
销毁异常对象
(虚公开成员函数)
复制异常对象
(公开成员函数)
[virtual]
返回说明性字符串
(虚公开成员函数)

标准异常要求

每个从 std::exception 派生的标准库类 T 都具有以下公开可访问的成员函数,其中每个函数 不会因异常而退出 (C++11 前) 具有 不抛出的异常规范 (C++11 起)

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

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

每个此类 T what() 成员函数均满足为 std::exception::what() 所规定的约束条件。

标准异常

(自 C++11 起)
(自 C++11 起)
(自 C++17 起)
(TM TS)
(自 C++20 起)
(自 C++17 起)
(自 C++23 起)
(自 C++11 起)
(自 C++11 起)
(C++11 前)
(自 C++17 起)

注释

功能测试 标准 功能
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr for exception types

缺陷报告

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

DR 适用范围 发布时的行为 正确行为
LWG 471 C++98 未对继承自 std::exception 的标准库类提出要求 已添加