std::system_error::system_error

来自cppreference.com
< cpp‎ | error‎ | system error
 
 
工具库
类型支持(基本类型、 RTTI 、类型特性)
动态内存管理
错误处理
程序工具
变参数函数
日期和时间
函数对象
(C++11)
关系运算符
optionalanyvariant (C++17)
pair 与 tuple
(C++11)
(C++17)
swap 、 forward 与 move
(C++14)
(C++11)
(C++11)
初等字符串转换
(C++17)
(C++17)
类型运算
(C++11)
(C++17)
 
 
std::system_error
成员函数
system_error::system_error
 
system_error( std::error_code ec );
(1) (C++11 起)
system_error( std::error_code ec, const std::string& what_arg );
(2) (C++11 起)
system_error( std::error_code ec, const char* what_arg );
(2) (C++11 起)
system_error( int ev, const std::error_category& ecat );
(3) (C++11 起)
system_error( int ev, const std::error_category& ecat,
              const std::string& what_arg);
(4) (C++11 起)
system_error( int ev, const std::error_category& ecat,
              const char* what_arg);
(4) (C++11 起)

构造新的 system_error 对象。

1) 以 error_code ec 构造
2) 以 error_code ec 和解释字符串 what_arg 构造。 what() 返回的字符串保证含有 what_arg
3) 以底层错误码 ev 和关联的 error_category ecat 构造。
4) 以底层错误码 ev 、关联的 error_category ecat 和解释字符串 what_arg 构造。 what() 返回的字符串保证含有 what_arg

[编辑] 参数

ec - 错误码
ev - 基础编码的错误码
ecat - 错误类别
what_arg - 解释性字符串

[编辑] 示例

演示如何从一个 errno 值创建一个 system_error 异常

#include <iostream>
#include <system_error>
 
int main()
{
    try
    {
        throw std::system_error(EDOM, std::generic_category());
    }
    catch (const std::system_error& error)
    {
        std::cout << "Error: " << error.code()
                  << " - " << error.code().message() << '\n';
    }
}

可能的输出:

Error: generic:33 - Numerical argument out of domain