try{}中return和finally{}

来源:互联网 发布:wind软件使用 编辑:程序博客网 时间:2024/06/11 18:43
/** * 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 stubSystem.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);}}

原创粉丝点击