I\'m using fstream. Is there any way to get the failure message/exception?
For example if I\'m unable to open the file?
Short answer: no. Even checking errno after you detect failure (using e.g. bad(), fail()) after various operations doesn't reliably work. Creating an ifstream/ofstream wrapping a file that can't be opened doesn't necessarily set a failure bit until you try to read, write, or close it.
Long answer: you can call ios::exceptions(ios_base::iostate) to request that ios_base::ios_failure exceptions be thrown when a corresponding bit (badbit, failbit, eofbit) is set, but this (at least on GNU and Microsoft C++ libraries) doesn't get you any more information than manually checking the bits, and ends up being largely pointless, IMHO.