[ 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