मेरे पास एक उपकरण है जहां उपयोगकर्ता कुछ पैरामीटर सेट करने के लिए क्यूटी गुई के माध्यम से एक एक्सएमएल चुन सकता है। यह समस्या है। जब फ़ाइल वैध xml फ़ाइल नहीं है तो मेरा टूल बस क्रैश हो जाता है। मुझे क्यूटी निर्माता में निम्न त्रुटि मिलती है:

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.

क्या मैं जांच सकता हूं कि एक्सएमएल वैध है या क्या मैं त्रुटि पकड़ सकता हूं और समाप्त करने के बजाय कुछ और कर सकता हूं?

मैं एक त्रुटि संदेश दिखाना चाहता हूं और पार्सिंग रद्द करना चाहता हूं।

पढ़ने की प्रक्रिया का मेरा कोड है:

#include <boost/property_tree/xml_parser.hpp>
#include <boost/property_tree/ptree.hpp>
...
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
0
ChrizZ 17 अक्टूबर 2018, 11:49

1 उत्तर

सबसे बढ़िया उत्तर

दस्तावेज़ीकरण के अनुसार read_xml किसी त्रुटि की स्थिति में xml_parser_error फेंकता है, तो बस उसे पकड़ लें।

1
Max 17 अक्टूबर 2018, 08:53