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