dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: C++
Expertise: Advanced
Nov 13, 1998

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Checking for an Uncaught Exception

A thrown exception is considered caught, when its corresponding handler has been entered (or, in case such a handler cannot be found, when unexpected() function has been invoked). Sometimes you have to check whether an uncaught exception is currently being processed. Consider a destructor that may throw an exception. If the destructor has been invoked due to stack unwinding caused by another exception, throwing an additional exception from this destructor will yield an undefined behavior. To check whether a thrown exception is currently being processed, you can use the standard function uncaught_exception():
 
class FileException{};
File::~File() throw (FileException);
{
   if ( close(file_handle) != success) // failed to close current file?
  {
    if (uncaught_exception()  == true ) // is there any uncaught exception being processed currently?
       return;  // if so, do not throw an exception
    throw FileException(); // otherwise, it is safe to throw an exception to signal an error
  }
return; // success
}
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date