Выполняется ли finally если в try выполнить return
public class Main {
public static void main(String[] args) {
String result = finallyTest();
System.out.println("Результат: " + result);
}public static String finallyTest() {
try {
return "try";
} finally {
return "finally";
}
return "end of method"; //compilation error
}
}
Результат: finally
Метод finallyTest() вернет строку именно из finally, потому что finally выполняется всегда, за исключением некоторых сценариев. Поэтому возвращаемое значение из блока try будет игнорироваться.
При этом любой другой return после блока finally, в этом случае, вызовет ошибку.
