In recent years, there have been several proposals to add the keyword finally to standard C++. Considering the inherent differences between Java and C++'s object models, as well as the ability to use destructors for deterministic cleanup code (as shown in this solution), do you think that the C++ standards committee should reject these proposals? Let us know in our C++ Forum.
Use Local Classes for Proper Cleanup in Exception-enabled Apps
While exceptions help with code reliability and data integrity, they can also complicate it. Proper cleanup is essential to making sure that your data is safe and that resources are always released. Learn how to use a local class's destructor to ensure the unconditional execution of cleanup code.
by Danny Kalev
October 13, 2004
Exceptions enable you to detect and handle anomalous runtime conditions promptly. However, they also complicate the design of your program as they increase the number of possible execution paths. In most cases, implementing the "resource acquisition is initialization" idiom guarantees that data isn't destroyed and that resources are always released. However, this idiom isn't always an ideal solution. The following sections present a more refined technique for ensuring proper cleanup in an exception-enabled environment.
How do you ensure that critical cleanup code always executes regardless of whether an exception has occurred?
It's quick, easy and you get access to all the articles on DevX.
This registration/login is to allow you to read articles on devx.com. Already a member?
To become a member of DevX.com create your Member Profile by completing the form below. Membership is free!