# std::ios_base::failure

From cppreference.com
< cpp‎ | io‎ | ios base

Defined in header `<ios>` |  |
class failure; |  |

The class std::ios_base::failure defines an exception object that is thrown on failure by the functions in the Input/Output library.

std::ios_base::failure may be defined either as a member class of std::ios_base or as a synonym (typedef) for another class with equivalent functionality. (since C++17)

Inheritance diagram | (until C++11)
Inheritance diagram | (since C++11)

### Member functions

(constructor) | constructs the exception object (public member function)

## std::ios_base::failure::failure

explicit failure( const std::string& message ); |  | (until C++11)
explicit failure( const std::string& message, const std::error_code& ec = std::io_errc::stream ); |  | (since C++11)
explicit failure( const char* message, const std::error_code& ec = std::io_errc::stream ); |  | (since C++11)

Constructs the exception object using `message` as explanation string which can later be retrieved using `what()`.

### Parameters

message | - | explanatory string

## Inherited from std::system_error

### Member functions

code | returns error code (public member function of `std::system_error`)
what [virtual] | returns explanatory string (virtual public member function of `std::system_error`)

## Inherited from std::runtime_error

## Inherited from std::exception

### Member functions

(destructor) [virtual] | destroys the exception object (virtual public member function of `std::exception`)
what [virtual] | returns an explanatory string (virtual public member function of `std::exception`)

### Example

Run this code

    #include <iostream>
    #include <fstream>
    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"
                      << "Explanatory string: " << e.what() << '\n'
                      << "Error code: " << e.code() << '\n';
        }
    }

Output:

    Caught an ios_base::failure.
    Explanatory string: ios_base::clear: unspecified iostream_category error
    Error code: iostream:1

### See also

io_errc (C++11) | the IO stream error codes (enum)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/ios_base/failure&oldid=95084"