- public class ExceptionDemo
- {
-
- public static void main(String[] args)
- {
- /**
- * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。
- * 会执行,在return前
- */
- System.out.println(getInt());
- }
-
- public static int getInt()
- {
-
- int a = 23 ;
-
- try
- {
- System.out.println(a / 0 );
- a = 45 ;
- }
-
- catch (Exception e)
- {
- a = 60 ;
- return a ; // 赋值完毕以后返回路径已经形成了这个时候a的值就是60 , 但是发现存在finally语句,
- // 于是就执行了一次finally然后继续返回 , 所以finally的执行在return中间
- }
- finally
- {
- a = 70 ;
- return a ; //70
- }
-
- // return a; //60
-
- }
- }
复制代码 |