Difference between revisions of "cpp/io/io errc"
From cppreference.com
m (Text replace - "cpp/error/system_error/" to "cpp/error/") |
Andreas Krug (Talk | contribs) m (fmt, headers sorted, langlinks) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|io_errc}} | {{cpp/title|io_errc}} | ||
− | {{cpp/io/io_errc/ | + | {{cpp/io/io_errc/navbar}} |
− | {{ | + | {{dcl begin}} |
− | {{ | + | {{dcl header|ios}} |
− | {{ | + | {{dcl|since=c++11|1= |
− | enum class io_errc; | + | enum class io_errc { |
+ | stream = 1, | ||
+ | }; | ||
}} | }} | ||
− | {{ | + | {{dcl end}} |
− | The scoped enumeration {{tt|std::io_errc}} defines the error codes reported by I/O streams in {{ | + | The scoped enumeration {{tt|std::io_errc}} defines the error codes reported by I/O streams in {{lc|std::ios_base::failure}} exception objects. Only one error code ({{tt|std::io_errc::stream}}) is required, although the implementation may define additional error codes. Because the appropriate specialization of {{lc|std::is_error_code_enum}} is provided, values of type {{tt|std::io_errc}} are implicitly convertible to {{lc|std::error_code}}. |
===Member constants=== | ===Member constants=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc hitem|Enumeration constant|Value}} |
− | {{ | + | {{dsc|{{tt|stream}}|{{c|1}}}} |
− | {{ | + | {{dsc end}} |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Non-member functions=== | ===Non-member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/io/io_errc/dsc make_error_code}} |
− | {{ | + | {{dsc inc|cpp/io/io_errc/dsc make_error_condition}} |
− | {{ | + | {{dsc end}} |
+ | |||
+ | ===Helper classes=== | ||
+ | {{dsc begin}} | ||
+ | {{dsc inc|cpp/io/io_errc/dsc is_error_code_enum}} | ||
+ | {{dsc end}} | ||
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
− | + | ||
#include <fstream> | #include <fstream> | ||
+ | #include <iostream> | ||
+ | |||
int main() | int main() | ||
{ | { | ||
std::ifstream f("doesn't exist"); | std::ifstream f("doesn't exist"); | ||
− | try { | + | try |
+ | { | ||
f.exceptions(f.failbit); | f.exceptions(f.failbit); | ||
− | } catch (const std::ios_base::failure& e) { | + | } |
+ | catch (const std::ios_base::failure& e) | ||
+ | { | ||
std::cout << "Caught an ios_base::failure.\n"; | std::cout << "Caught an ios_base::failure.\n"; | ||
− | if(e.code() == std::io_errc::stream) | + | if (e.code() == std::io_errc::stream) |
std::cout << "The error code is std::io_errc::stream\n"; | std::cout << "The error code is std::io_errc::stream\n"; | ||
} | } | ||
} | } | ||
− | + | |output= | |
Caught an ios_base::failure. | Caught an ios_base::failure. | ||
The error code is std::io_errc::stream | The error code is std::io_errc::stream | ||
Line 50: | Line 55: | ||
===See also=== | ===See also=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/error/dsc error_code}} |
− | {{ | + | {{dsc inc|cpp/error/dsc error_condition}} |
− | {{ | + | {{dsc inc|cpp/io/ios_base/dsc failure|mem=std::ios_base}} |
− | {{ | + | {{dsc end}} |
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 10:50, 15 September 2023
Defined in header <ios>
|
||
enum class io_errc { stream = 1, |
(since C++11) | |
The scoped enumeration std::io_errc
defines the error codes reported by I/O streams in std::ios_base::failure exception objects. Only one error code (std::io_errc::stream
) is required, although the implementation may define additional error codes. Because the appropriate specialization of std::is_error_code_enum is provided, values of type std::io_errc
are implicitly convertible to std::error_code.
Contents |
[edit] Member constants
Enumeration constant | Value |
stream
|
1 |
[edit] Non-member functions
constructs an iostream error code (function) | |
constructs an iostream error condition (function) |
[edit] Helper classes
extends the type trait std::is_error_code_enum to identify iostream error codes (class template specialization) |
[edit] Example
Run this code
#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"; if (e.code() == std::io_errc::stream) std::cout << "The error code is std::io_errc::stream\n"; } }
Output:
Caught an ios_base::failure. The error code is std::io_errc::stream
[edit] See also
(C++11) |
holds a platform-dependent error code (class) |
(C++11) |
holds a portable error code (class) |
stream exception (public member class of std::ios_base )
|