In Java there are always the little things which get you thinking :D

So the question is: will the finally part in a try and catch block be executed even after a return. This means, that a method will be left before the finally statement.

Lets try it out:

package me.kamwo.examples;

import org.junit.Test;

 * Created by kwozniak on 07.05.15.
public class FinallyTest {

    public void testFinally() {
        System.out.println("result: " + result());

    public String result() {
        try {
            return "something";
        } catch (Exception e) {
        } finally {
            System.out.println("Finally executed!");
        return "Fail.";

And here are the results:

Finally executed!
result: something


The finally block will always be executed even after a return statement.