std::iostream_category
来自cppreference.com
在标头 <ios> 定义 | ||
conststd::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("不存在");try{ f.exceptions(f.failbit);}catch(conststd::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) | 输入/输出流的错误码 (枚举) |