std::iostream_category
来自 cppreference.com
定义在头文件 <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++ 标准。
DR | 应用于 | 发布的行为 | 正确行为 |
---|---|---|---|
LWG 2087 | C++11 | iostream_category 未声明为 noexcept |
声明为 noexcept |
[编辑] 另请参阅
流异常 ( std::ios_base 的公共成员类) | |
(C++11) |
I/O 流错误代码 (枚举) |