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>

运行结果:

Java return和finally执行顺序_第1张图片

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

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


你可能感兴趣的:(Java return和finally执行顺序)