0

有没有办法在fstream打开文件失败时抛出异常,我该怎么做?

我知道该std::fstream.exceptions()方法以及如何为其分配位,但是什么“位”会引发异常?

4

2 回答 2

2

Iostream 可以是三种不同故障状态中的任何一种:fail、bad 和 eof。该文档清楚地向您展示了如何导致其中任何一个引发异常;默认情况下,它们都不做,但是false如果发生任何故障模式,则在布尔上下文中评估流对象会返回。

例子:

#include <fstream>

std::ifstream infile;
infile.expections(std::ios::failbit);
infile.open("foo.txt");    // throws on failure
于 2013-10-23T15:16:26.747 回答
0

当您打开一个文件并且它失败时,比较流,例如

if(mystream==false)
{
//File wasn't opened properly
throw openFailed
}

如果您检测到流为假,则抛出您自己编写的异常。

于 2013-10-23T15:20:01.367 回答