有没有办法在fstream
打开文件失败时抛出异常,我该怎么做?
我知道该std::fstream.exceptions()
方法以及如何为其分配位,但是什么“位”会引发异常?
有没有办法在fstream
打开文件失败时抛出异常,我该怎么做?
我知道该std::fstream.exceptions()
方法以及如何为其分配位,但是什么“位”会引发异常?
Iostream 可以是三种不同故障状态中的任何一种:fail、bad 和 eof。该文档清楚地向您展示了如何导致其中任何一个引发异常;默认情况下,它们都不做,但是false
如果发生任何故障模式,则在布尔上下文中评估流对象会返回。
例子:
#include <fstream>
std::ifstream infile;
infile.expections(std::ios::failbit);
infile.open("foo.txt"); // throws on failure
当您打开一个文件并且它失败时,比较流,例如
if(mystream==false)
{
//File wasn't opened properly
throw openFailed
}
如果您检测到流为假,则抛出您自己编写的异常。