/**
* finally语句在try语句中的return同时执行。
*
* try{}中return先将val返回,再执行finally{}中的语句,再将子程序逻辑返回
* Return 并不是让函数马上返回,而是return 语句执行后,将把返回结果放置进函数栈中,
* 此时函数并不是马上返回,它要执行finally语句后才真正开始返回
*/
package test;
public class Test {
static int val=0;
static int reval(){
try{
return val;
}finally{
++val;
}
}
@SuppressWarnings("finally")//其实finally中return不符合规范
static int reval2(){
try{
return val;
}finally{
++val;
return val;
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(val);
System.out.println(reval());//try{}中return先将val返回,再执行finally{}中的语句,再将子程序逻辑返回
System.out.println(val);
System.out.println(reval2());//先将val返回,再执行finally{}中的语句(可以return改变try中的返回值),再将子程序逻辑返回
System.out.println(val);
}
}
try{}中return和finally{}
最新推荐文章于 2022-01-20 10:00:00 发布