名前空間
変種
操作

std::exception

From cppreference.com
< cpp‎ | error
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
 
 
ヘッダー <exception> で定義
class exception;

throw式を通じてエラーを処理するための一貫したインターフェースを提供します。

標準ライブラリによって生成される全ての例外は std::exception を継承します。

std::exception の全てのメンバ関数は constexpr です。

(C++26以降)

目次

[編集] メンバ関数

例外オブジェクトを構築する
(public member function)
例外オブジェクトを破棄する
(仮想publicメンバ関数) [編集]
例外オブジェクトをコピーする
(publicメンバ関数) [編集]
[virtual]
説明文字列を返す
(仮想publicメンバ関数) [編集]

[編集] 標準例外の要件

std::exception から派生する各標準ライブラリクラス T は、以下に挙げる public アクセス可能なメンバ関数を持ち、それぞれは 例外で終了しない(C++11まで)例外を投げない例外仕様を持つ(C++11から)

コピーコンストラクタとコピー代入演算子は、以下の事後条件を満たします。

  • 2つのオブジェクト lhsrhs が両方とも動的型 T を持ち、lhsrhs のコピーである場合、std::strcmp(lhs.what(), rhs.what())0 と等しい。

そのような各 Twhat() メンバ関数は、std::exception::what() に指定された制約を満たします。

[編集] 標準例外

[編集] ノート

機能テストマクロ 規格 機能
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr for exception types

[編集] 欠陥報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 471 C++98 std::exception から派生した標準ライブラリクラスには要件がなかった 追加された
English 日本語 中文(简体) 中文(繁體)