Skip to main content

Java finally return

Finally with return statement

I have already discussed about finally block in my previous tutorial. This post is to learn finally block behavior when a return statement is encountered inside try/catch or finally block.
Consider below example – What do you think?? Will finally would execute even if there is a return failure statement.
try {
    //try block
    ...
    return success;
}
catch (Exception ex) {
    //catch block
    .....
    return failure;
}
finally {
    System.out.println("Inside finally");
}
The answer is yes. finally block will execute every time. The only case when it doesn’t execute is when it encounters System.exit().

Finally: Example with return statement

class FinallyDemo
{
   public static int myMethod()
   {
       try {
            //try block
            return 0;
       }
       finally {
            //finally
            System.out.println("Inside Finally block");
       }
  }
  public static void main(String args[])
  {
       System.out.println(FinallyDemo.myMethod());
  }
}
Output:
Inside Finally block
0

Does finally block Overrides the values returned by try-catch block?

Yes. Finally clause overrides the value returned by try and catch blocks. Consider below example
public static int myTestingFuncn(){
  try{
     ....
     return 5;
  } finally {
     ....
     return 19;
   }
}
The above code would return value 19 since the value returned by try has been overridden by finally.

Comments

Popular posts from this blog

Inheritance in Java

Inheritance in Java Inheritance  is one of the feature of Object-Oriented Programming (OOPs). Inheritance allows a class to use the properties and methods of another class. In other words, the derived class inherits the states and behaviors from the base class. The derived class is also called subclass and the base class is also known as super-class . The derived class can add its own additional variables and methods. These additional variable and methods differentiates the derived class from the base class. Inheritance is a  compile-time  mechanism. A super-class can have any number of subclasses . But a subclass can have only one superclass. This is because Java does not support multiple inheritance. The superclass and subclass have  “is-a”  relationship between them. Let’s have a look at the example below. Inheritance  Example Let’s consider a superclass  Vehicle . Different vehicles have different features and properties howeve...

Switch Case

Syntax : Switch Case in Java Programming It is alternative to else-if ladder. Switch Case Syntax is similar to – C/C++  Switch. Switch allows you to choose a block of statements to run from a selection of code, based on the return value of an expression. The expression used in the switch statement must return an  int, a String, or an enumerated value . switch (selection) { // value case value1 : // checking value 1 statement ( s ) ; break ; // use to break switch flow if condition match case value2 : // checking value 2 statement ( s ) ; break ; . . case value_n : statement ( s ) ; break ; default : statement ( s ) ; } Different Ways of Using Switch Case : Switch Case Using Integer Case int i=3; switch (i) { case 1 : System . out . println ( "One player is playing this game." ) ; break ; case 2 : System . out . println ( "Two players are playing ...

JAVA BASICS (OOPs Concepts)

OOPs Basics Java is known as an Object Oriented language. So,  what does Object Oriented mean ? It means that the  foundations  of any kind of  program constructed in Java  might be imagined in terms of  Objects . Note  : Above are the links of separate detailed tutorials on each topic. However if you want to brush up the things for interview, below is a brief of each of the above topic which will help you re-call the things. a) Data b) Instructions for processing that data into a self-sufficient ‘object’ that can be used within a program or in other programs. Advantage of Object Oriented Programming a) Objects are modeled on real world entities. b) This enables modeling complex systems of real world into manageable software solutions. Programming techniques a)  Unstructured Programming  (Assembly language programming) b)  Procedural Programming  (Assembly language, C programming) c)  Object Orien...