クラス名 | インクルード するヘッダ |
解説 | ||
std::exception | <exception> | 以下のすべての例外クラスをラップできる。 | ||
├ | std::bad_alloc | <new> | new 演算子が失敗した際に送出される。 |
|
---|---|---|---|---|
├ | std::bad_cast | <typeinfo> | 参照に対する dynamic_cast が失敗した際に送出される。 | |
├ | std::bad_typeid | <typeinfo> | typeid 演算子にヌルポインタを渡した際に送出される。 | |
├ | std::bad_exception | <exception> | 例外指定で指定されていない種類の例外を送出した際に用いられる。 | |
├ | std::ios_base::failure | <ios> | 入出力ストリームでのエラー時に送出される。 | |
├ | std::logic_error | <stdexcept> | 論理的なエラーを表現。以下のクラスは主に、関数の引数が不正である場合に送出される。 | |
│ | ├ | std::out_of_range | logic_error から派生。 関数が受け取った引数が有効範囲外である場合に送出される。 |
|
│ | ├ | std::invalid_argument | logic_error から派生。 関数が受け取った引数が意味的に不正である場合に送出される。 例) bitset にビットを表現しない値を渡そうとした |
|
│ | ├ | std::length_error | logic_error から派生。 長さが上限を超えた場合に送出される。 例) 文字列の結合により、max_size() で取得できる最大長を超えてしまった |
|
│ | └ | std::domain_error | logic_error から派生。 logic_error から派生する他の例外のいずれにも当てはまらない場合に使用される。 但し標準規格として、このクラスから作られた例外が送出される場面は存在しない。 |
|
└ | std::runtime_error | <stdexcept> | 実行時にしか検出できないエラーを表現。以下のクラスは主に、演算を行った際にエラーが発生すると送出される。 | |
├ | std::range_error | runtime_error から派生。 演算により範囲エラーが発生した場合に送出される。 |
||
├ | std::overflow_error | runtime_error から派生。 数値演算でオーバーフローが発生した場合に送出される。 |
||
└ | std::underflow_error | runtime_error から派生。 数値演算でアンダーフローが発生した場合に送出される。 |