测试代码如下:
package reviewTest; /**
* @ClassName: ReturnTest
* @Description: 测试return在trycatch中的执行
* @author Kingram
* @date 2018年7月27日
*
*/
public class ReturnTest { public static void main(String[] args) {
System.out.println(new ReturnTest().test());
} private int test() {
int x = 1;
try {
int[] arr = new int[2];
x = arr[5];
return x;
} catch (Exception e) {
x = 10;
return x;
} finally {
++x;
return x;
}
} }
程序执行分析:
当程序执行到第20行时会产生数组下标越界异常,这时直接跳到catch语句块,此时x==10,并没有return。
最终执行finally语句块此时x==11,并返回x,最终输出结果为11。