[ 
https://issues.apache.org/jira/browse/XERCESC-1368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Boris Kolpackov updated XERCESC-1368:
-------------------------------------

    Affects Version/s:     (was: 2.6.0)
                       3.0.1

We still have a lot of catch(...) in the 3-series code base. David, are you 
still working on this?

> Catch-all handler are problematic on Windows
> --------------------------------------------
>
>                 Key: XERCESC-1368
>                 URL: https://issues.apache.org/jira/browse/XERCESC-1368
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: Miscellaneous
>    Affects Versions: 3.0.1
>         Environment: Windows XP with Visual Studio .NET 2003
>            Reporter: David Bertoni
>            Assignee: David Bertoni
>         Attachments: patch.txt
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to