enum class
<ios> <iostream>
std::io_errc
Input/output error conditions
This enum class type defines the error conditions of the iostream category .
The enum includes at least the following label:
| io_errc label | value | description |
| stream | 1 | Error in stream |
All library implementations define at least this value (stream, with a value of 1), but may provide additional values, especially if they require to produce additional error codes for the iostream category .
Values of the enum type io_errc may be used to create error_condition objects to be compared against the value returned by the code member of ios_base::failure .
Although notice that exceptions of type ios_base::failure may also carry error codes from other categories (such as from the system_category ).
Example
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;
}
Possible output:
failure caught: stream error condition