c++ - 退出函数时 JsonCpp 抛出 LogicError
问题描述
我有这段代码:
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
。
解决方案
所以事实证明我很糟糕并且没有刷新输出流,因此我用来调试的文本消息没有被打印出来,并且错误发生在下一个函数中。很抱歉浪费了人们的时间。
推荐阅读
- javascript - 'XRegExp' 未使用 ie11 定义
- json - 我如何使用ajax从json文件中获取数据
- javascript - momentjs toDate - 不同客户端/浏览器上的不同输出
- ios - 如何将桥接头添加到 Flutter 插件
- javascript - 如何使用 sass 创建条件导入?
- r - 作为非交互式 Rscript 运行时出现错误时停止 R 代码执行
- javascript - 自动完成从 API 获取数据
- c# - android改造服务器中的异常
- class - class 创建另一个类并关联它稍后删除它,如何在 UML 类图中显示它?
- r - 在 R 中的一些点之间创建一个函数