neilg 2004/01/05 20:42:53 Modified: c/src/xercesc/validators/datatype DecimalDatatypeValidator.cpp Log: On some platforms, it is problematic to throw a different exception from inside the catch block of another exception Revision Changes Path 1.23 +12 -4 xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp Index: DecimalDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- DecimalDatatypeValidator.cpp 3 Jan 2004 00:04:36 -0000 1.22 +++ DecimalDatatypeValidator.cpp 6 Jan 2004 04:42:53 -0000 1.23 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.23 2004/01/06 04:42:53 neilg + * On some platforms, it is problematic to throw a different exception from inside the catch block of another exception + * * Revision 1.22 2004/01/03 00:04:36 peiyongz * using ctor/parseContent to avoid exception thrown from ctor * @@ -584,9 +587,9 @@ // all other facet were inherited by the derived type if (asBase) return; - + XMLCh *errorMsg = 0; try { - XMLBigDecimal compareDataValue(manager); + XMLBigDecimal compareDataValue (manager); compareDataValue.parseContent(content); XMLBigDecimal* compareData = &compareDataValue; @@ -657,7 +660,12 @@ } catch (XMLException &e) { - ThrowXMLwithMemMgr1(InvalidDatatypeFacetException, XMLExcepts::RethrowError, e.getMessage(), manager); + errorMsg = XMLString::replicate(e.getMessage(), manager); + } + if(errorMsg) + { + ArrayJanitor<XMLCh> jan(errorMsg, manager); + ThrowXMLwithMemMgr1(InvalidDatatypeFacetException, XMLExcepts::RethrowError, errorMsg, manager); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]