我想解析一个简单的文本文件并根据它所包含的数据创建一个对象。我为此使用C++ 11(而且我不流利)。将文本文件解析为对象时的错误处理
在任何类型的错误的情况下(例如缺少文件或无效的文本),我想告诉我的解析函数的调用什么地方出了错,提供喜欢什么样的错误发生,并且其中的文件信息。
我不认为例外,虽然解析出现错误,因此它似乎异常不是要走的路。
我认为在成功的情况下返回struct
的所有信息,包括所产生的分析对象:
struct ParsingResult
{
bool success;
int errorCode;
int errorLine;
ParsedObject object;
}
但是我没有这个解决方案说服,因为在错误的情况下,我必须仍然提供ParsedObject
。当然,我可以为它定义一个默认的构造函数,但仅当解析成功时,ParsedObject
才有意义。
我可以将ParsedObject
更改为ParsedObject*
,但是我不愿意在不需要的时候使用指针,我不知道这是否可以避免。
我的问题:你能提出更好的解决这个问题呢?它是什么?