c++ - safe reading from a stream in a for loop using getline - Stack Overflow
The iostreams by default do not throw exceptions when errors occur. If you want to enable them:
cout.execeptions( std::ios::badbit );
would enable exceptions if badbit is set.
To enable them all:
cout.execeptions( std::ios::badbit | std::ios::eofbit | std::ios::failbit );
The exceptions thrown are of type:
std::ios_base::failure
which is derived from
std::exception
.In general though, it is easier not to use execptions, but to use constructs like:
while( std::getline( myStreamObj, line ) ) { // process line }