记录一下try..catch..finally..中return的情况。
1.try中有return,finally中没有return语句的。
如下代码:--返回1;finally中代码也有执行到,但try中return a程序会记录下来1;执行完finally后再去return 1;
public int test3(){
int a = 0;
try {
a++;
return a;
} catch (Exception e) {
a++;
return a;
}finally{
a++;
}
}
2.try中有return,finally中也有return语句的。
如下代码:--2,最终返回的是finally语句下return a的结果。
public int test3(){
int a = 0;
try {
a++;
return a;
} catch (Exception e) {
a++;
return a;
}finally{
a++;
return a;
}
}
3.return语句在最外面的情况
如下代码:--返回2,
public int test3(){
int a = 0;
try {
a++;
} catch (Exception e) {
a++;
}finally{
a++;
}
return a;
}
4.类似于如下这种:--返回1
public int test3(){
int a = 0;
try {
a++;
return a;
} catch (Exception e) {
a++;
}finally{
a++;
}
return a;
}
总结一下:finally中带有return的,一律最终都会返回该结果。
只有try中带有return的(catch也会带有或最外边带有),则会忽略其他各处对结果的修改,只返回try中返回的结果。