最終更新日時:
が更新

履歴 編集

class
<stdexcept>

std::overflow_error

namespace std {
  class overflow_error : public runtime_error;
}

概要

overflow_errorクラスは、算術演算の結果がオーバーフロー(扱える値の上限を超過)したことを通知するために送出される例外クラスである。

標準ライブラリでは、std::bitsetto_ulong()to_ullong()が、値を戻り値の型で表現できない場合にこの例外を送出する。

このクラスはruntime_errorを公開継承しており、runtime_errorとして捕捉できる。

メンバ関数

名前 説明 対応バージョン
(constructor) コンストラクタ
(destructor) デストラクタ
operator= 代入演算子
what エラー理由を取得する(std::exceptionから継承)

#include <stdexcept>
#include <iostream>
#include <bitset>

int main()
{
  std::bitset<128> bits;
  bits.set(127);

  try {
    // 128ビットの値はunsigned longでは表現できない
    unsigned long value = bits.to_ulong();
    std::cout << value << std::endl;
  }
  catch (const std::overflow_error& e) {
    std::cout << "overflow_error: " << e.what() << std::endl;
  }
}

出力例

overflow_error: _Base_bitset::_M_do_to_ulong

例外オブジェクトが保持するメッセージの内容は、処理系によって異なる。

関連項目

参照