Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 2.09 KB

File metadata and controls

68 lines (52 loc) · 2.09 KB

length_error

  • stdexcept[meta header]
  • std[meta namespace]
  • class[meta id-type]
namespace std {
  class length_error : public logic_error;
}
  • logic_error[link logic_error.md]

概要

length_errorクラスは、オブジェクトの最大許容サイズを超える長さのオブジェクトを生成しようとしたことを通知するために送出される例外クラスである。

std::basic_stringstd::vectorなどのコンテナで、max_size()を超える要素数を要求した場合などに送出される。

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

メンバ関数

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

#include <stdexcept>
#include <iostream>
#include <string>

int main()
{
  try {
    std::string s;
    // 最大長を超える長さを要求する
    s.resize(s.max_size() + 1);
  }
  catch (const std::length_error& e) {
    std::cout << "length_error: " << e.what() << std::endl;
  }
}
  • std::length_error[color ff0000]
  • s.max_size()[link /reference/string/basic_string/max_size.md]
  • s.resize[link /reference/string/basic_string/resize.md]

出力例

length_error: basic_string::_M_replace_aux

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

関連項目

参照