测试代码如下:
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。