Предотвращение сбоя Boost xml Parser при выборе неверного файла в C ++ - PullRequest
0 голосов
/ 17 октября 2018

У меня есть инструмент, где пользователь может выбрать XML через Qt Gui, чтобы установить некоторые параметры.Проблема в.Когда файл не является действительным 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);

1 Ответ

0 голосов
/ 17 октября 2018

Согласно документации read_xml выдает xml_parser_error в случае ошибки, поэтому просто поймайте ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...