天天看点

java return

1 package reviewTest;

2

3 /**

4 * @ClassName: ReturnTest

5 * @Description: 测试return在trycatch中的执行

6 * @author Kingram

7 * @date 2018年7月27日

8 *

9 */

10 public class ReturnTest {

11

12 public static void main(String[] args) {

13 System.out.println(new ReturnTest().test());

14 }

15

16 private int test() {

17 int x = 1;

18 try {

19 int[] arr = new int[2];

20 x = arr[5];

21 return x;

22 } catch (Exception e) {

23 x = 10;

24 return x;

25 } finally {

26 ++x;

27 return x;

28 }

29 }

30

31 }

复制代码

程序执行分析:

  当程序执行到第20行时会产生数组下标越界异常,这时直接跳到catch语句块,此时x==10,并没有return。

  最终执行finally语句块此时x==11,并返回x,最终输出结果为11。

生活中也许做的事情暂时看不到成果,但是不要害怕,你不是没有成长,而是在扎根,别担心,你所有的付出,都有意义,人生没有白吃的苦,你吃过的苦都是为将来的幸福打下基础,人生没有白走的路,每一步都算数。

由此可见,当catch 模块遇到return 的时候,在return 之前执行 finally模块语句,然后再执行return