But your constructor calls loadXML_proj(), so all the code in that
function is executed while prjLoad is being constructed.  This does not
differ in any significant way from executing the same code in the
constructor.  

-----Original Message-----
From: appleGuy [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 20, 2006 12:32 PM
To: [email protected]
Subject: RE: Error In Code (Sax Parsing)


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#a79
94297
Sent from the Xerces - C - Users mailing list archive at Nabble.com.

Reply via email to