gpt4 book ai didi

c++ - 如何检测 Boost.PropertyTree 的解析/读取失败?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:25 28 4
gpt4 key购买 nike

文档并没有真正说明。

我知道我可以将它交给它一个 ifstream,这样我就可以检查以确保它是打开的,所以这种情况大部分都得到了处理。

但是当执行 boost::property_tree::ini_parser::read_ini(ifstream_object,property_tree_object);

如何检测文件格式是否错误?我有什么方法可以获取诊断信息,例如哪里解析失败?

最佳答案

只捕获异常。基本 PropertyTree 异常类是 boost::property_tree::ptree_error源自 std::runtime_error ,它有两个后代:ptree_bad_dataptree_bad_path .

示例:

#include <boost/property_tree/ini_parser.hpp>
#include <boost/property_tree/ptree.hpp>
#include <iostream>
#include <sstream>

int main()
{
using namespace std;
using namespace boost;
using namespace property_tree;

stringstream ss;
ss << "good = value" << endl;
ss << "bad something" << endl;
try
{
ptree root;
read_ini(ss, root);
}
catch(const ptree_error &e)
{
cout << e.what() << endl;
}
}

输出是:

<unspecified file>(2): '=' character not found in line

关于c++ - 如何检测 Boost.PropertyTree 的解析/读取失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679820/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com