I'm using fstream. Is there any way to get the failure message/exception?
For example if I'm unable to open the file?
See Question&Answers more detail:osI'm using fstream. Is there any way to get the failure message/exception?
For example if I'm unable to open the file?
See Question&Answers more detail:osStreams by default do not throw exceptions on error, they set flags. You can make them throw exceptions by using the stream's exception() member function:
ifstream ifs;
ifs.exceptions( std::ios::failbit ); // throw if failbit get set
Theoretically, you could then do something like this:
try {
int x;
ifs >> x;
}
catch( const std::exception & ex ) {
std::cerr << "Could not convert to int - reason is "
<< ex.what();
}
Unfortunately, the C++ Standard does not specify that thrown exceptions contain any error message, so you are in implementation specific territory here.