天天看點

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