エラー処理
提供: cppreference.com
< cpp
目次 |
[編集] 例外処理
ヘッダ <exception>
は C++ プログラムにおける例外処理関連のいくつかのクラスや関数を提供します。
ヘッダ
<exception> で定義 | |
標準ライブラリのコンポーネントによって投げられる例外のための基底クラス (クラス) | |
例外オブジェクトのキャプチャと記憶域 | |
(C++20で削除)(C++17) |
例外処理が現在進行中かどうか調べます (関数) |
(C++11) |
例外オブジェクトを扱うための共有ポインタ型 (typedef) |
(C++11) |
例外オブジェクトから std::exception_ptr を作成します (関数テンプレート) |
(C++11) |
現在の例外を std::exception_ptr にキャプチャします (関数) |
(C++11) |
std::exception_ptr から例外を投げます (関数) |
(C++11) |
現在の例外をキャプチャして格納するミックスイン型 (クラス) |
(C++11) |
std::nested_exception をミックスインして引数を投げます (関数テンプレート) |
(C++11) |
std::nested_exception から例外を投げます (関数テンプレート) |
例外処理の失敗の処理 | |
ヘッダ
<exception> で定義 | |
例外処理が失敗したときに呼ばれる関数 (関数) | |
std::terminate によって呼ばれる関数の型 (typedef) | |
(C++11) |
現在の terminate_handler を取得します (関数) |
std::terminate によって呼ばれる関数を変更します (関数) | |
std::current_exception が例外オブジェクトのコピーに失敗したときに投げられる例外 (クラス) | |
例外指定の違反の処理 | |
(C++17で削除) |
動的例外指定に違反したときに呼ばれる関数 (関数) |
(C++17で削除) |
std::unexpected によって呼ばれる関数の型 (typedef) |
(C++11)(C++17で削除) |
現在の unexpected_handler を取得します (関数) |
(C++17で削除) |
std::unexpected によって呼ばれる関数を変更します (関数) |
[編集] 例外のカテゴリ
特定のエラー状況を報告するためのいくつかの便利なクラスがヘッダ <stdexcept>
で定義されています。 これらのクラスは2つのカテゴリ、ロジックエラーとランタイムエラーに分類できます。 ロジックエラーはプログラム内のロジックの誤りに起因するもので、回避できる場合があります。 ランタイムエラーはプログラムの範囲を超えた出来事に起因するもので、簡単には予測できません。
ヘッダ
<stdexcept> で定義 | |
論理的な事前条件やクラスの不変条件の違反を表す例外クラス (クラス) | |
無効な引数を報告する例外クラス (クラス) | |
定義域エラーを報告する例外クラス (クラス) | |
最大許容サイズを超えようとしていることを報告する例外クラス (クラス) | |
範囲外の引数を報告する例外クラス (クラス) | |
実行時にのみ検出可能な状況を報告する例外クラス (クラス) | |
内部の計算における値域エラーを報告する例外クラス (クラス) | |
算術オーバーフローを報告する例外クラス (クラス) | |
算術アンダーフローを報告する例外クラス (クラス) | |
(TM TS) |
アトミックトランザクションをキャンセルする例外クラス (クラステンプレート) |
[編集] エラー番号
ヘッダ
<cerrno> で定義 | |
POSIX 互換のスレッドローカルなエラー番号変数に展開されるマクロ (マクロ変数) | |
標準の POSIX 互換のエラー状況のためのマクロ (マクロ定数) |
[編集] アサーション
アサーションはプログラム内の事前条件の確認を実装するのに便利です。
ヘッダ
<cassert> で定義 | |
指定された条件が true でなければプログラムを停止します。 リリースビルドでは無効化されるかもしれません (関数マクロ) |
[編集] システムエラー
ヘッダ <system_error>
はオペレーティングシステム、ストリーム入出力、std::future またはその他の低水準 API から生成されるエラー状況を報告するために使用される型と関数を定義します。
ヘッダ
<system_error> で定義 | |
(C++11) |
エラーカテゴリのための基底クラス (クラス) |
(C++11) |
一般エラーカテゴリを識別します (関数) |
(C++11) |
オペレーティングシステムのエラーカテゴリを識別します (関数) |
(C++11) |
移植性のあるエラーコードを保持します (クラス) |
(C++11) |
標準の <cerrno> のマクロ定数をすべて並べた std::error_condition 用の列挙型 (クラス) |
(C++11) |
プラットフォーム依存のエラーコードを保持します (クラス) |
(C++11) |
error_code を持つ状況を報告するために使用される例外クラス (クラス) |
[編集] 関連項目
static_assert 宣言(C++11)
|
コンパイル時のアサーションチェックを行います |
エラー処理 の C言語リファレンス
|