Namespaces
Variants

std::system_error

ja.cppreference.net から
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20 で非推奨)
 
 
 
ヘッダ <system_error>
class system_error;
で定義 (C++11 以降)

std::system_error は、各種ライブラリ関数 (通常は OS 機能とインターフェースする関数、例えば std::thread のコンストラクタ) によって投げられる例外の型であり、その例外は関連付けられた std::error_code を持ち報告される可能性があります。

cpp/error/exceptioncpp/error/runtime error

継承図

メンバー関数

system_errorオブジェクトを構築する
(public member function)
system_errorオブジェクトを置き換える
(public member function)
エラーコードを返す
(public member function)
[virtual]
説明文字列を返す
(virtual public member function)

std::exception から継承

メンバ関数

[virtual]
例外オブジェクトを破棄
(std::exception の仮想公開メンバ関数)
[virtual]
説明文字列を返す
(std::exception の仮想公開メンバ関数)

例

#include <iostream>
#include <system_error>
#include <thread>
int main()
{
    try
    {
        std::thread().detach(); // attempt to detach a non-thread
    }
    catch(const std::system_error& e)
    {
        std::cout << "Caught system_error with code "
                     "[" << e.code() << "] meaning "
                     "[" << e.what() << "]\n";
    }
}

出力例:

Caught system_error with code [generic:22] meaning [Invalid argument]