[ 
http://issues.apache.org/jira/browse/XERCESC-1368?page=comments#action_62390 ]
     
David Bertoni commented on XERCESC-1368:
----------------------------------------

I am attaching a patch that contains a new proposed class implemented in 
Janitor.h and Janitor.c.  The patch also contains a proposed application of 
this class to the class IGXMLScanner.

Could interested parties please take a look a the patch and offer any feedback. 
 If this looks acceptable, I will apply it to the other scanner classes as well.

> Catch-all handler are problematic on Windows
> --------------------------------------------
>
>          Key: XERCESC-1368
>          URL: http://issues.apache.org/jira/browse/XERCESC-1368
>      Project: Xerces-C++
>         Type: Bug
>   Components: Miscellaneous
>     Versions: 2.6.0
>  Environment: Windows XP with Visual Studio .NET 2003
>     Reporter: David Bertoni

>
> Exception handlers of the form "catch(...)" are causing problems in our 
> product code on Windows, because they are catching hardware exceptions, such 
> as access violations.
> There is an article in the MSDN Knowledge Base that describes how this has 
> changed between Visual Studio 6, and Visual Studio .NET:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_core_exception_handling.3a_.default_synchronous_exception_model.asp
> However, my experience with Xerces-C using Visual Studio .NET 2003 is that 
> hardware exceptions (asynchronous exceptions, in the Microsoft parlance) are 
> still being caught in Xerces-C in catch-all handlers.  This is problematic 
> because it interferes with normal diagnosis of hardware faults, and can lead 
> to code being executed in Xerces-C when the system is in an unknown state.  
> It is also a makes it difficult to write code that will behave the same on 
> other platforms.
> Looking into the code reveals multiple places where a catch-all handler 
> resets some object (or some other similar behavior), then rethrows the same 
> exception.  I'd like to propose that we try to eliminate as many of these 
> catch handlers as possible by replaces these actions with stack objects that 
> perform these actions automatically whether or not an exception is thrown 
> (auto_ptr-like behavior).  This will also have the benefit of simplifying the 
> code.  From a "philosophical" perspective, I also think its better for code 
> to catch the exceptions it's concerned with, and avoid catch-all handlers 
> except when absolutely necessary.
> I will attach a proposed patch for a class that does this sort of thing, and 
> some modified code that uses this class.  I would also like to see if anyone 
> else has observed this behavior in their Windows applications.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to