Login | Register   
LinkedIn
Google+
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
Nov 27, 2000

Returning a Value from a Function that Throws

A reader asked me the following questions: "Can a function that returns something, throw a exception and still return a value?" Lets' look at a concrete example:

 
int f()
{
 if (something)
  throw X();
else
  return 0;
}

f() has two exit points: the throw statement and the return statement. On each invocation, f() can exit only from one of these exit points. Thus, syntactically, there is no way that f() can both throw and exception and return a value. At the logical level, there is another reason why it is impossible to return and throw at the same time. When an exception is thrown, it means that the function encountered an irrecoverable error from which it cannot proceed normally and return a meaningful value. On the other hand, if the function can return a meaningful result, there's no reason why an exception should be thrown. The execution path of a return statement and a throw statement are always mutually exclusive.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap