Java return和finally执行顺序

    在Java语法中,return表示当前执行的结束,finally则是在当前代码块一定会执行的代码块。如果return在finally在之前执行,也就是return放在try或者catch的语句块里,,finally里的代码也会执行吗?我们来试试看!

源码:

<span style="font-size:18px;"> public static String test(){
		 int a = 2;
		 int b = 0;
		 int c;
	     String s = "";
	     try {
	         s = "try";
	         
	         System.out.println("try:"+s) ;
	         c = a/b;
	         return s;
	     } catch (Exception e) {
	         s = "catch";
	         System.out.println("catch:"+s);
	         return s;
	     } finally {
	         System.out.println("finally:"+s);
	         s = "finally";
	         System.out.println("finally:"+s);
	     }
	 }</span>

运行结果:


在上面的代码中,最后运行的是finally里的代码块,虽然前面已经有了return语句。也就是说,无论在try或catch里是否有return语句, finally里的代码块总会执行。

个人认为,这个先后顺序没有计较的价值。需要知道的是: 
1、finally代码块中最后不要用return; 
2、finally和return一起使用,finally是会被执行的。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值