Ok, Ill see what turns up. Most (if not all) of the parsing code is not in the constructor. Its in a seperate function, that is independant of the constructor.
Cheers Alex Jesse Pelton wrote: > > You might want to start by trapping all the exceptions that parse() can > generate. DOMException, OutOfMemoryException, and (I think) > SAXException are all possibilities that you haven't covered. Using the > getMessage() member to display the exception message may well be > revealing. > > Personally, I'd think twice before implementing a constructor that does > so much work. Handling exceptions properly in constructors is > notoriously difficult, and this one is rife with opportunities for > error. > > -----Original Message----- > From: appleGuy [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 20, 2006 12:05 PM > To: [email protected] > Subject: Error In Code (Sax Parsing) > > > Hi, > > My program generates a runtime error...I went through the debugger & it > seems to break at the parser->parse(XMLfile) > > The error is: > > Debug Error!....this application has requested the runtime to terminate > in > an unusual way > > The code with problems: > > #include "prjLoad.h" > > //DEBUG > #include <iostream> > using namespace std; > > //Default Constructor > prjLoad::prjLoad(prjHandler *ptr_tmp): prjHandle(ptr_tmp){ > loadXML_prj("xml_file.xml"); > } > > //Destructor > prjLoad::~prjLoad(void){ > //Terminate The Dom Session > XMLPlatformUtils::Terminate(); > } > > bool prjLoad::loadXML_prj(char *prj_filename){ > //Start XML Xerces Framework > try { > XMLPlatformUtils::Initialize(); > } > catch (const XMLException& toCatch) { > char* message = XMLString::transcode(toCatch.getMessage()); > cout << "Error during initialization! :\n" > << message << "\n"; > XMLString::release(&message); > return false; > } > > //Create New Parser (SAX) > SAXParser* parser = new SAXParser(); > > //File Input Validation > parser->setDoValidation(true); > parser->setDoNamespaces(true); > > //Create our SAX handler object and install it on the > parser (Doc & Error > Handler) > //Using Project as Handler > parser->setDocumentHandler(prjHandle); > parser->setErrorHandler(prjHandle); > > //Load File through Xerces > XERCES_STD_QUALIFIER ifstream xmlFileHandle; > xmlFileHandle.open(prj_filename); > > //Load Each Line From File To Array xmlFile > bool flag = true; > while (flag == true) > { > char token[1000]; > //Set array to zeros > memset(token,0,sizeof(token)); > > //Sequential Search > if(!(xmlFileHandle.eof())){ > xmlFileHandle.getline(token, sizeof(token)); > > //Check If Line Contains Anything > if(!(token)) > continue; > else { > //Load into New Derived Variable for > overloading & Safety > const char *XMLfile = token; > > //Debug > cout << "Parsing: " << XMLfile << endl; > > //ERROR WIPE -> NEEDS IMPLIMENTING > > try { > parser->parse(XMLfile); > } > catch(XMLException &e){ > cout << "ERROR OCCURED" << endl; > } > > } > > > } > //ELSE STATEMENT FOR EOF-> Set Flag to false therefore > exiting while loop > else > flag = false; > > > } > return true; > } > > Thanks For looking at this its been bugging me for hours > > Cheers > -Alex > -- > View this message in context: > http://www.nabble.com/Error-In-Code-%28Sax-Parsing%29-tf2860959.html#a79 > 93779 > Sent from the Xerces - C - Users mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/Error-In-Code-%28Sax-Parsing%29-tf2860959.html#a7994297 Sent from the Xerces - C - Users mailing list archive at Nabble.com.
