try、catch、finally中有return语句时程序的执行顺序

本文详细探讨了Java中try、catch、finally块中包含return语句时程序的执行顺序。首先,当try代码块包含return且finally不包含时,finally中的代码会改变引用类型变量的值,影响返回结果。其次,catch中的return同样会在执行finally后返回。最后,如果finally也含有return,它将覆盖try和catch中的return,直接返回结果。总结强调finally总执行,return类型影响返回值,finally的return会破坏程序完整性。
摘要由CSDN通过智能技术生成

1. try代码块中包含return语句,finally代码块中不包含return语句。

public class Test {
	public static void main(String[] args) {
		System.out.println(test());
	}
	static int test() {
		int x=1;
		try {
			System.out.println("try语句块:"+x);
			return x;
		}catch(Exception e) {
			x++;
			System.out.println("catch: "+x);
		}finally {
			 x++;
			 System.out.println("finally语句块:"+x);
			 
		}
		return x;
	}
}

执行结果:

     因为try中带有return,会先执行return前的代码,然后暂时保存需要return的信息,再执行finally中的代码,最后通过return返回之前保存的信息。但是当return的类型不为基本类型时,结果会是怎样的呢?

public List<Integer> test() {
		List<Integer> list= new ArrayList<Integer>();
		int x=1;
		try {
			list.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值