[
https://issues.apache.org/jira/browse/XERCESC-1368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12781187#action_12781187
]
David Bertoni commented on XERCESC-1368:
----------------------------------------
This is not a problem with Visual Studio 2005 and later, so perhaps it's not
worth doing any more work to fix it.
> 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: [email protected]
For additional commands, e-mail: [email protected]