我在 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
}
我的问题是:
- 上述实现是检查错误的正确方法,还是应该抛出异常?你有选择其中任何一个的理由吗?
- 如果上面的实现是正确的,为了测试:我应该让方法返回一个字符串(“无法打开输入文件”),并在测试中断言这个字符串是否返回?