我正在使用 fstream。有什么方法可以获取失败消息/异常?
例如,如果我无法打开文件?
最佳答案
默认情况下,Streams 不会在出错时抛出异常,它们会设置标志。您可以使用流的 exception() 成员函数让它们抛出异常:
ifstream ifs;
ifs.exceptions( std::ios::failbit ); // throw if failbit get set
理论上,你可以做这样的事情:
try {
int x;
ifs >> x;
}
catch( const std::exception & ex ) {
std::cerr << "Could not convert to int - reason is "
<< ex.what();
}
不幸的是,C++ 标准没有指定抛出的异常包含任何错误消息,因此您在此处处于特定于实现的领域。
关于c++ - 获取 std::fstream 失败错误消息和/或异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8438302/