Namespaces
Variants

Diagnostics library

From cppreference.net

目次

例外処理

ヘッダー <exception> は、C++プログラムにおける例外処理に関連するいくつかのクラスと関数を提供します。

ヘッダーで定義 <exception>
標準ライブラリコンポーネントによってスローされる例外の基底クラス
(クラス)
例外オブジェクトの捕捉と格納
( removed in C++20* ) (C++17)
例外処理が現在進行中かどうかをチェックする
(function)
例外オブジェクトを扱うための共有ポインタ型
(typedef)
例外オブジェクトから std::exception_ptr を作成する
(関数テンプレート)
現在の例外を std::exception_ptr にキャプチャする
(関数)
std::exception_ptr から例外を送出する
(関数)
現在の例外を捕捉・保存するためのミックスイン型
(クラス)
引数を std::nested_exception と共に送出する
(関数テンプレート)
std::nested_exception から例外をスローする
(関数テンプレート)
例外処理における失敗の処理
ヘッダーで定義 <exception>
例外処理が失敗したときに呼び出される関数
(関数)
std::terminate によって呼び出される関数の型
(typedef)
現在のterminate_handlerを取得する
(関数)
std::terminate によって呼び出される関数を変更する
(関数)
例外オブジェクトのコピーに std::current_exception が失敗したときにスローされる例外
(クラス)
例外仕様違反の処理 (until C++17)
(C++11で非推奨) (C++17で削除)
動的例外仕様が違反されたときに呼び出される関数
(関数)
(C++11で非推奨) (C++17で削除)
std::unexpected によって呼び出される関数の型
(typedef)
(C++11で非推奨) (C++17で削除)
現在の unexpected_handler を取得する
(関数)
(C++11で非推奨) (C++17で削除)
std::unexpected によって呼び出される関数を変更する
(関数)

例外カテゴリ

ヘッダーファイル <stdexcept> には、特定のエラー状態を報告するための便利なクラスが事前に定義されています。これらのクラスは2つのカテゴリに分類できます: logic エラーと runtime エラーです。Logicエラーはプログラム内の論理的な欠陥に起因し、防止可能な場合があります。Runtimeエラーはプログラムの範囲外の事象によるもので、容易に予測することはできません。

ヘッダーで定義 <stdexcept>
論理的な前提条件やクラス不変条件の違反を示す例外クラス
(クラス)
無効な引数を報告する例外クラス
(クラス)
定義域エラーを報告する例外クラス
(クラス)
最大許容サイズを超える試みを報告する例外クラス
(クラス)
期待される範囲外の引数を報告する例外クラス
(クラス)
実行時のみ検出可能な状態を示す例外クラス
(クラス)
内部計算における範囲エラーを報告する例外クラス
(クラス)
算術オーバーフローを報告する例外クラス
(クラス)
算術アンダーフローを報告する例外クラス
(クラス)
アトミックトランザクションをキャンセルする例外クラス
(クラステンプレート)

エラー番号

ヘッダーで定義 <cerrno>
POSIX互換のスレッドローカルエラー番号変数に展開されるマクロ
(マクロ変数)
標準的なPOSIX互換エラー条件のためのマクロ
(マクロ定数)

システムエラー (C++11以降)

ヘッダー <system_error> は、オペレーティングシステム、ストリームI/O、 std::future またはその他の低レベルAPIから発生するエラー状態を報告するために使用される型と関数を定義します。

定義済みヘッダー <system_error>
エラーカテゴリの基底クラス
(クラス)
汎用エラーカテゴリを識別する
(関数)
オペレーティングシステムエラーカテゴリを識別する
(関数)
移植可能なエラーコードを保持する
(クラス)
(C++11)
std::error_condition 列挙型、すべての標準 <cerrno> マクロ定数をリストする
(クラス)
(C++11)
プラットフォーム依存のエラーコードを保持する
(クラス)
error_codeを持つ状態を報告するために使用される例外クラス
(クラス)

アサーション

アサーションはプログラム内での事前条件のチェック実装を支援します。

ヘッダーで定義 <cassert>
ユーザー指定の条件が true でない場合、プログラムを異常終了させる。リリースビルドでは無効化される可能性がある。
(関数マクロ)

スタックトレース (C++23以降)

定義済みヘッダー <stacktrace>
スタックトレース内の評価の表現
(クラス)
スタックトレースエントリから構成される呼び出しシーケンスの近似表現
(クラステンプレート)

デバッグサポート (since C++26)

ヘッダーで定義 <debugging>
(C++26)
呼び出されたときに実行中のプログラムを一時停止する
(関数)
std::is_debugger_present true を返す場合に std::breakpoint を呼び出す
(関数)
プログラムがデバッガーの制御下で実行されているかどうかをチェックする
(関数)

関連項目

static_assert 宣言 (C++11) コンパイル時アサーション検査を実行する
Cドキュメント for エラーハンドリング