楼主可以运行下这个代码,这是传智风清扬老师的演示代码
- class FinallyDemo
- {
- public static void main(String[] args)
- {
- System.out.println(Demo());
- }
- public static int Demo()
- {
- int a = 10;
- try
- {
- System.out.println(a/0);
- a = 20;
- }
- catch (ArithmeticException e)
- {
- a = 30;
- return a;
- }
- finally
- {
- a = 40;
- }
- return a;
- }
- }
复制代码
根据这个代码可以看出return语句执行了两次,先形成了返回路径,但暂停了没有立即返回,此时a=30;然后执行finally,a赋值为40;然后再继续运行return语句,返回30。按照风老师的说法是finally语句是运行在return中间的。
楼主可以参考下这个说法
|