std::iostream_category
来自cppreference.com
在标头 <ios> 定义
|
||
const std::error_category& iostream_category() noexcept; |
(C++11 起) | |
获取为 iostream 错误而设的静态 error_category 对象的引用。要求对象覆写虚函数 error_category::name() 以返回指向字符串 "iostream" 的指针。它也用来鉴别由 std::ios_base::failure 类型异常提供的错误码。
参数
(无)
返回值
从 std::error_category 派生的未指定运行时类型的静态对象的引用。
示例
运行此代码
#include <fstream> #include <iostream> int main() { std::ifstream f("不存在"); try { f.exceptions(f.failbit); } catch (const std::ios_base::failure& e) { std::cout << "捕获了 ios_base::failure。\n" << "错误码:" << e.code().value() << "(" << e.code().message() << ")\n" << "错误类别:" << e.code().category().name() << '\n'; } }
可能的输出:
捕获了 ios_base::failure。 错误码:1(unspecified iostream_category error) 错误类别:iostream
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
LWG 2087 | C++11 | iostream_category 未声明为 noexcept
|
声明为 noexcept |
参阅
流异常 ( std::ios_base 的公开成员类) | |
(C++11) |
输入/输出流的错误码 (枚举) |