JAVA try catch finally

  1. 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;
}
  1. 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);
}

2020-02-22

posted @ 2020-10-09 18:15  FirstLetterZ  阅读(81)  评论(0)    收藏  举报