In Joshua Bloch's Automatic Resource Management proposal (http://docs.google.com/Doc?id=ddv8ts74_3fs7483dp) for project Coin he wrote:
Even the "correct" idioms for manual resource management are deficient: if an exception is thrown in the try block, and another when closing the resource in the finally block, the second exception supplants the first, making it difficult to determine the real cause of the trouble. In other words, by responsibly closing your resource even during some catastrophic event, you can actually erase all record of the event, resulting in many wasted hours of debugging. While it is possible to write code to suppress the second exception in favor of the first, virtually no one does, as it is just too verbose. This is not a theoretical problem; it has greatly complicated the debugging of large systems. I just encountered this problem: Some code threw an exception creating a zip. The ZipOutputStream was closed in a finally block and the real exception was replaced by one complaining that there were no entries in the zip. Does anyone do the "right" thing? What are the best idioms or helper methods/classes to do this? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javaposse@googlegroups.com To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---