wood burning stoves 2.0*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes return Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "return" Watch "return" New topic
Author

return

Kedar Dravid
Ranch Hand

Joined: May 28, 2004
Posts: 333
Consider the following example from JQPlus:
public float parseFloat(String s)
{
float f = 0.0f;
try
{
f = Float.valueOf(s).floatValue();
return f ;
}
catch(NumberFormatException nfe)
{
System.out.println("Invalid input " + s);
f = Float.NaN ;
return f;
}
finally { System.out.println("finally"); }
return f ;
}

Which of the following statements about the above method are true?

a If input: "0.1" then it will return 0.1 and print finally.


b If input: "0x.1" then it will return Float.Nan and print Invalid Input 0x.1and finally.


c If input: "1" then it will return 1 and print finally.


d If input: "0x1" then it will return 0.0 and print Invalid Input 0x1 and finally.


e The code will not compile.

Answer: e
Explanation given:.
Note that the return statement after finally block is unreachable. Otherwise, choices 1, 2, 3 are valid.
I can't understand why/how the return statement is unreachable.
Also, assuming it is unreachable, shouldn't choice 3(c) print 1.0 and not 1?
Barry Gaunt
Ranch Hand

Joined: Aug 03, 2002
Posts: 7729
Where is it printing 1?


Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
Mike Gershman
Ranch Hand

Joined: Mar 13, 2004
Posts: 1272
If a NumberFormatException is not thrown, the finally clause will execute, then the first return statement, so the last return statement is not reached.

If a NumberFormatException is thrown, the catch clause is executed but the return action is delayed, then the finally clause is executed, then the delayed return action occurs. The final return statement is still not executed.
[ March 11, 2005: Message edited by: Mike Gershman ]

Mike Gershman
SCJP 1.4, SCWCD in process
Kedar Dravid
Ranch Hand

Joined: May 28, 2004
Posts: 333
Thanks, Mike!
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: return
 
Similar Threads
COnfusion About Unreachable Code
JQPlus Question
JQ+ and confusion with try/catch/finally
unreachable code in 'finally'
why is finally not being called?