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


Tip of the Day
Language: C++
Expertise: Intermediate
Mar 5, 1999

Exception Type Match

When an exception is thrown, the exception handling mechanism searches for a matching handler for it. The matching rules for exceptions are more restrictive than the matching rules for function overloading. For example:
 
try
{
  throw int();
}
catch (unsigned int) //will not catch the exception from previous try-block
{		 
}
The exception thrown is of type int, whereas the handler expects an unsigned int. The exception handling mechanism does not consider these to be matching types, and as a result, the thrown exception is not caught. The matching rules for exceptions allow only a limited set of conversions. For an exception E and a handler taking T or T&, the match is valid if T and E are of the same type (ignoring const and volatile specifiers), or if E is publicly derived from T. If E and T are pointers, the match is valid if E and T are of the same type or if E is a pointer to an object publicly derived from T.
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap