Namespaces
Variants

std:: iostream_category

From cppreference.net
< cpp ‎ | io
定义于头文件 <ios>
const std:: error_category & iostream_category ( ) noexcept ;
(C++11 起)

获取iostream错误类别的静态错误类别对象引用。该对象需要重写虚函数 error_category :: name ( ) 以返回指向字符串 "iostream" 的指针。该对象用于标识 std::ios_base::failure 类型异常中提供的错误代码。

目录

参数

(无)

返回值

对具有未指定运行时类型的静态对象的引用,该类型派生自 std::error_category

示例

#include <fstream>
#include <iostream>
int main()
{
    std::ifstream f("doesn't exist");
    try
    {
        f.exceptions(f.failbit);
    }
    catch (const std::ios_base::failure& e)
    {
        std::cout << "Caught an ios_base::failure.\n"
                  << "Error code: " << e.code().value() 
                  << " (" << e.code().message() << ")\n"
                  << "Error category: " << e.code().category().name() << '\n';
    }
}

可能的输出:

Caught an ios_base::failure.
Error code: 1 (unspecified iostream_category error)
Error category: iostream

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 应用于 发布时的行为 正确行为
LWG 2087 C++11 iostream_category 未被声明为 noexcept 声明为 noexcept

参见

流异常
( std::ios_base 的公开成员类)
(C++11)
IO流错误码
(枚举)