enum class
<ios> <iostream>

std::io_errc

enum class io_errc;
输入/输出错误条件
enum class 类型定义了错误条件iostream 类别

此枚举至少包含以下标签
io_errc 标签描述
stream1流中的错误

所有库实现至少定义此值(stream,值为 1),但可能提供额外的值,特别是当它们需要为iostream 类别生成额外错误码时。

枚举类型 io_errc 的值可用于创建 error_condition 对象,以与 ios_base::failurecode 成员返回值进行比较。

尽管需要注意的是,类型为 ios_base::failure 的异常也可能携带其他类别的错误码(例如来自system_category 的错误码)。

非成员函数重载


非成员类特化


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// io_errc example
#include <iostream>     // std::cin, std::cerr, std::ios,
                        // std::make_error_condition, std::ios_errc
int main () {
  std::cin.exceptions (std::ios::failbit|std::ios::badbit);
  try {
    std::cin.rdbuf(nullptr);    // throws
  } catch (std::ios::failure& e) {
    std::cerr << "failure caught: ";
    if ( e.code() == std::make_error_condition(std::io_errc::stream) )
      std::cerr << "stream error condition\n"; 
    else
      std::cerr << "some other error condition\n";
  }

  return 0;
}

可能的输出

failure caught: stream error condition


另见