Login | Register   
RSS Feed
Download our iPhone app
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:
  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.



Thanks for your registration, follow us on our social networks to keep up-to-date