• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class
    <system_error>

    std::system_error

    namespace std {
      class system_error : public runtime_error;
    }
    

    概要

    system_errorクラスは、OSのエラーを表現するerror_codeクラスのオブジェクトを包含した例外クラスである。

    メンバ関数

    名前 説明 対応バージョン
    system_error(error_code ec, const string& what_arg);
    system_error(error_code ec, const char* what_arg);
    system_error(error_code ec);
    system_error(int ev, const error_category& cat,
    const string& what_arg);
    system_error(int ev, const error_category& cat,
    const char* what_arg);
    system_error(int ev, const error_category& cat);
    error_codeオブジェクト or エラー値 + エラーカテゴリとエラー理由の文字列からsystem_errorオブジェクトを生成する C++11
    const error_code& code() const noexcept; 包含しているerror_codeオブジェクトへの参照を取得する C++11
    virtual const char* what() const noexcept; メッセージを取得する メッセージ内容は実装依存だが、「what_arg + ": " + code().message()」という形式になると予想できる。 C++11

    #include <iostream>
    #include <system_error>
    #include <string>
    
    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) {
        const std::error_code& ec = e.code();
    
        std::cout << ec.value() << std::endl;
        std::cout << e.what() << std::endl;
      }
    }
    

    出力例

    22
    system error!: Invalid argument
    

    バージョン

    言語

    • C++11

    処理系