• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class
    <system_error>

    std::error_code

    namespace std {
      class error_code;
    }
    

    概要

    error_codeは、OSのAPIで発生するエラー値およびそのエラーメッセージを扱うクラスである。

    このクラスは主に、system_error例外クラスに付加する情報として使用する。

    メンバ関数

    名前 説明 対応バージョン
    (constructor) コンストラクタ C++11
    ~error_code() = default デストラクタ C++11
    operator= 代入演算子 C++11
    assign 値の再設定 C++11
    clear エラー情報をクリアする C++11
    value エラー値を取得する C++11
    category エラーカテゴリを取得する C++11
    default_error_condition error_codeに対応するerror_conditionを取得する
    message エラーメッセージを取得する C++11
    explicit operator bool エラーかどうかを判定する C++11

    非メンバ関数

    名前 説明 対応バージョン
    operator== 等値比較 C++11
    operator!= 非等値比較 (C++20からoperator==により使用可能) C++11
    operator<=> 三方比較 C++20
    operator< 左辺が右辺より小さいか判定する (C++20からoperator<=>により使用可能) C++11
    bool operator<=(const error_code&, const error_code&) noexcept; 左辺が右辺以下か判定する (operator<=>により使用可能) C++20
    bool operator>(const error_code&, const error_code&) noexcept; 左辺が右辺より大きいか判定する (operator<=>により使用可能) C++20
    bool operator>=(const error_code&, const error_code&) noexcept; 左辺が右辺以上か判定する (operator<=>により使用可能) C++20
    operator<< ストリームへ出力 C++11
    make_error_code errcからerror_codeオブジェクトを生成する C++11

    その他

    名前 説明 対応バージョン
    hash error_codeでの特殊化 C++11

    #include <iostream>
    #include <system_error>
    
    int main()
    {
      try {
        // 不正な引数エラー
        std::error_code ec(static_cast<int>(std::errc::invalid_argument),
                           std::generic_category());
    
        throw std::system_error(ec, "system error!");
      }
      catch (std::system_error& e) {
        // 例外オブジェクトからerror_codeを取得
        const std::error_code& ec = e.code();
    
        // エラー値とメッセージを出力
        std::cout << ec.value() << std::endl;
        std::cout << ec.message() << std::endl;
      }
    }
    

    出力

    22
    Invalid argument
    

    バージョン

    言語

    • C++11

    処理系

    参照