Yes, finally block will always be executed.
Finally block will always execute except the below cases:
Call the System.exit() method explicitly, power failure, JVM crash, software crash etc.
public class Main { String getWebsiteName() { try { return "w3schools.com"; } catch(Exception e) { return "java.com"; } finally { System.out.println("Finally block executed even after a return statement."); } } public static void main(String[] args) { Main main = new Main(); System.out.println(main.getWebsiteName()); } } |
Output
Finally block executed even after a return statement. w3schools.com |
Java interview questions on Exception Handling
- what is an exception?
- How the exceptions are handled in java?
- What is the difference between error and exception in java?
- Can we keep other statements in between try catch and finally blocks?
- Explain the exception hierarchy in java?
- What are runtime exceptions in java?
- What is outofmemoryerror in java?
- What are checked and unchecked exceptions in java?
- What is the difference between classnotfoundexception and noclassdeffounderror in java?
- Will finally block get executed if return?
- Can we throw an exception without throws?
- What is rethrowing an exception in java?
- What is the use of throws keyword in java?
- What is exception propagation in java?
- Difference between throw and throws in java?
- What is finally in java?
- What is the difference between final finally and finalize in java?
- How to create customized exceptions in java?
- What is classcastexception in java?
- What is stackoverflowerror in java?
- What is the superclass of all exception classes?
- What is the use of printstacktrace method in java?
- What is arraystoreexception in java?