I\'m using fstream. Is there any way to get the failure message/exception?
For example if I\'m unable to open the file?
Streams 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.