我有这段代码:
void foo()
{
std::string r = curlcall();
std::string error;
Json::CharReaderBuilder *build = new Json::CharReaderBuilder();
Json::CharReader *read = build->newCharReader();
Json::Value *root = new Json::Value();
std::cout << "parse\n";
read->parse(&r.front(), &r.back() + 1, root, &error);
std::cout << "loop\n";
for(auto i : *root)
{
//code that pulls info from each i
}
std::cout << "delete\n";
delete root;
delete read;
delete build;
std::cout << "end\n" << error << "\n";
}
当我编译并运行该程序时,它输出:
parse
loop
delete
end
但是,在输出之后,程序在此处崩溃并显示以下消息:
terminate called after throwing an instance of 'Json::LogicError'
what(): in Json::Value::resolveReference(key, end): requires objectValue
Aborted (core dumped)
长时间搜索后仍然找不到导致此异常的原因。我似乎也无法使用try/catch
来捕获错误。
答案 0 :(得分:0)
因此,事实证明我很糟糕并且没有刷新输出流,因此我用来调试的文本消息没有得到打印,并且错误发生在下一个函数中。很抱歉浪费人们的时间。