ログファイルに書き込もうとしているこのコードがあります。
Logger::Logger(void) //constructor
{
try{
log.open("lodg.txt", std::fstream::in); //Open existing file.
this->writeLog("Logger started", Severity::INFO); //Add line to the log file,
}catch(fstream::failure e)
{
cerr << "File I/O error." << endl;
cout << e.what() << endl;
}
}
この場合、fstream::in はファイルが存在しない場合はファイルを作成しないことを知っていますが、問題は、新しいファイルを作成しないにもかかわらず、例外をスローしないことです。次のようなコードで、存在しないファイルに「書き込む」ことができます。//例外をスローしません。