首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止boost xml解析器在C++中选择错误文件时崩溃

防止boost xml解析器在C++中选择错误文件时崩溃
EN

Stack Overflow用户
提问于 2018-10-17 08:49:34
回答 1查看 641关注 0票数 0

我有一个工具,用户可以通过Qt选择xml来设置一些参数。问题是。当文件不是有效的xml文件时,我的工具就会崩溃。我在Qt中得到了以下错误:

代码语言:javascript
复制
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::property_tree::xml_parser::xml_parser_error> >'
what():  /home/path/to/Executable: expected <
10:40:44: The program has unexpectedly finished.

我是否可以检查XML是否有效,或者是否可以捕获错误并执行其他操作而不是终止?

我想显示一条错误消息并取消解析。

我的阅读过程代码是:

代码语言:javascript
复制
#include <boost/property_tree/xml_parser.hpp>
#include <boost/property_tree/ptree.hpp>
...
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 08:53:29

根据文档read_xml在发生错误时抛出一个xml_parser_error,所以只需捕捉它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52850815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档