Я запутался в выполнении try-finally, когда в блоке try существует return;
. В моем понимании блок finally всегда будет выполнен, то есть перед возвратом к вызывающему методу. Рассматривая следующий простой код:
public class TryCatchTest {
public static void main(String[] args){
System.out.println(test());
}
static int test(){
int x = 1;
try{
return x;
}
finally{
x = x + 1;
}
}
}
Результат напечатан на самом деле 1. Означает ли это, что блок finally не выполняется? Может ли кто-нибудь помочь мне с этим?