- finally中包含return,最终返回finally中return的结果。 下面代码结果为4:
int a = 1;
try {
a = 2;
return a;
} catch (Exception e) {
a = 3;
return a;
} finally {
a = 4;
return a;
}
- try或catch中包含return,则return 的内容的地址在执行finally之前就已经固定了。 下面代码结果为2:
int a = 1;
try {
a = 2;
return a;
} catch (Exception e) {
a = 3;
return a;
} finally {
a = 4;
}
下面代码结果为[1,3]:
List<Integer> list = new ArrayList();
try {
list.add(1);
return list;
} catch (Exception e) {
list.add(2);
return list;
} finally {
list.add(3);
}