执行,并且
finally
的执行早于
try
里面的
return
import static
java
.
lang
.
Math
.
*
;
public class
Test
{
public static
void
main
(
String
[]
args
){
//System.out.println(Math.sin(20));
传统做法
System
.
out
.
println
(
sin
(
20
));
}
}
byte
a
=
127
;
byte
b
=
127
;
b
=
a
+
b
;
//
报编译错误
:cannot convert from int to byte
b
+=
a
;
short
s1
=
1
;
s1
=
s1
+
1
;
short
s1
=
1
;
s1
+=
1
;
阿里内部资料
结论:
1
、不管有木有出现异常,
finally
块中代码都会执行;
2
、当
try
和
catch
中有
return
时,
finally
仍然会执行;
3
、
finally
是在
return
后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的
值保存起来,管
fifinally
中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数
返回值是在
fifinally
执行前确定的;
4
、
finally
中最好不要包含
return
,否则程序会提前退出,返回值不是
try
或
catch
中保存的返回值。