ファイルから読み取る関数がC++にあります。関数は、ファイルの名前を表す文字列をパラメーターとして受け取ります。この関数には、エラー(ファイルが存在しないなど)をチェックするためのif条件があります。
void B::readFile(string file)
{
ifstream stfile;
stfile.open(file.c_str(), ios::in);
if ( stfile.fail() ) {
cerr << "Unable to open input file" << endl;
exit(-1);
}
//---goes on here
}
私の質問は:
- 上記の実装はエラーをチェックする正しい方法ですか、それとも例外をスローする必要がありますか?どちらかを選ぶ理由はありますか?
- 上記の実装が正しい場合、テスト用に:メソッドに文字列を返すようにし(「入力ファイルを開けません」)、この文字列がテストで返されるかどうかを確認する必要がありますか?