X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=blobdiff_plain;f=xmltooling%2Fbase.h;fp=xmltooling%2Fbase.h;h=c55b5d160509dcba06ff9c167f758fc887fc6440;hp=03930625769166b0e75ee75bdae69c3c6cc27b0f;hb=2d795c731e6729309044607154978696a87fd900;hpb=00a533b0daf2f5a4e6380f6e76f6a1fd11cfdffc diff --git a/xmltooling/base.h b/xmltooling/base.h index 0393062..c55b5d1 100644 --- a/xmltooling/base.h +++ b/xmltooling/base.h @@ -811,7 +811,16 @@ XMLCh* m_##proper; \ public: \ pair get##proper() const { \ - return make_pair((m_##proper!=nullptr),(m_##proper!=nullptr ? xercesc::XMLString::parseInt(m_##proper): 0)); \ + if (m_##proper) { \ + try { \ + return std::make_pair(true, xercesc::XMLString::parseInt(m_##proper)); \ + } \ + catch (...) { \ + return std::make_pair(true, 0); \ + } \ + } else { \ + return std::make_pair(false, 0); \ + } \ } \ void set##proper(const XMLCh* proper) { \ m_##proper = prepareForAssignment(m_##proper,proper); \ @@ -1369,7 +1378,16 @@ #define DECL_INTEGER_CONTENT(proper) \ XMLTOOLING_DOXYGEN(Returns proper in integer form after a NULL indicator.) \ std::pair get##proper() const { \ - return std::make_pair((getTextContent()!=nullptr), (getTextContent()!=nullptr ? xercesc::XMLString::parseInt(getTextContent()) : 0)); \ + if (getTextContent()) { \ + try { \ + return std::make_pair(true, xercesc::XMLString::parseInt(getTextContent())); \ + } \ + catch (...) { \ + return std::make_pair(true, 0); \ + } \ + } else { \ + return std::make_pair(false, 0); \ + } \ } \ XMLTOOLING_DOXYGEN(Sets proper.) \ void set##proper(int proper) { \