This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Soft Skills: The software developer's life manual and have John Sonmez on-line!
See this thread for details.
Win a copy of Soft Skills: The software developer's life manual this week in the Jobs Discussion forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Return Statement from a Method

 
PavanPL KalyanK
Ranch Hand
Posts: 212
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


If a Method is suppoused to return a Value , the return value should be always in a finally block ? Am i correct on this ?


 
John de Michele
Rancher
Posts: 600
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, you generally don't need to put return values in finally blocks. Finally blocks are usually used for resources that need to be released, such as closing files or database connections. Your method could easily be rewritten as:

 
PavanPL KalyanK
Ranch Hand
Posts: 212
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
John Thanks ,

If its a simple what you said would be fine . But if i am dealing with any Data Base connections then i should be dealing with the try and catch blocks in that case i am asking.
 
fred rosenberger
lowercase baba
Bartender
Pie
Posts: 12015
24
Chrome Java Linux
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One of the reasons/purposes of having a try/catch/finally block is to separate out error handling from the normal flow of your code. the normal operation goes in the 'try', the error goes in the 'catch', and the 'i really need to clean up' goes in the 'finally'.

Since the return is part of the normal flow, it could go in either the 'try' or outside of the try/catch block all together. some folks argue that the ONLY think that should go in the try is stuff that can throw the exception, and your return statement is not one of them.

 
Rob Spoor
Sheriff
Pie
Posts: 20368
43
Chrome Eclipse IDE Java Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You should even be careful about returning values from finally. For example:

The above code will print 5, not 1.
 
Chuck Mondi
Ranch Hand
Posts: 31
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Whatever you place in Finally will run regardless of what happens as a result of your try/catch block so only put code in the finally block that you always want to run.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic