gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:31:09 26 4
gpt4 key购买 nike

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

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 是否有效,或者我能否捕获错误并执行其他操作而不是终止?

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

我的阅读过程代码是:

#include <boost/property_tree/xml_parser.hpp>
#include <boost/property_tree/ptree.hpp>
...
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);

最佳答案

根据documentation read_xml 会在发生错误时抛出一个 xml_parser_error,因此只需捕获它即可。

关于c++ - 在 C++ 中选择错误的文件时防止 boost xml 解析器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52850815/

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