Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
定義済みヘッダー <exception>
class exception ;

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

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

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

(C++26以降)

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Member functions、Standard exception requirements、Standard exceptions、Notes、Defect reports)は原文のまま保持しました - HTMLタグ、属性、
タグ内のテキストは翻訳対象外のため、すべて原文のまま保持しました
- 番号付けや構造は完全に維持されています

メンバー関数

例外オブジェクトを構築する
(public member function)
[virtual]
例外オブジェクトを破棄する
(virtual public member function)
例外オブジェクトをコピーする
(public member function)
[virtual]
説明文字列を返す
(virtual public member function)

標準例外要件

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

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

  • 2つのオブジェクト 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)
**翻訳結果:**
(TM TS)
**説明:** - HTMLタグ、属性、` `タグ内のテキストは翻訳せずに保持しました - C++固有の用語(`tx_exception`)は翻訳していません - タイトル属性内のテキストもC++関連のため翻訳していません - `(TM TS)`は技術仕様の略称のため翻訳していません
(C++20以降)
(C++17以降)
(C++23以降)
(C++11以降)
(注:指定された条件により、HTMLタグ・属性は翻訳せず、 タグ内のテキストも翻訳対象外のため、元のまま保持されています)
(C++11以降)
(C++11まで)
(C++17以降)

注記

機能テスト マクロ 標準 機能
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr 例外型のためのconstexpr

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 471 C++98 std::exception から派生する標準ライブラリクラスに対する要件が存在しなかった 追加された