Выполняется ли finally если в try return?

1,00
р.
try { ... return qwe } catch {...} finally {...}
Выполняется ли finally если в try есть return?

Ответ
Конечно. На то он и finally. Правда результат может немного озадачить.
import java.util.* import java.lang.*
class Main { public static int test() { try { System.out.println("test") return 1 } finally { System.out.println("fin") return 2 } //return 3 } public static void main (String[] args) throws java.lang.Exception { int i = test() System.out.println("test return " + i) } }
вывод будет такой:
test fin test return 2
а вот строку с return 3 не даст раскомментировать компилятор.