java中return和finally执行顺序及返回值问题 | 您所在的位置:网站首页 › try中finally与return的先后顺序 › java中return和finally执行顺序及返回值问题 |
总结: a. 对于返回值是基本类型的也包括String类型,情况分几种: 1.只有try体中有return时,返回try里的值 2.只有finally体中有return时,返回finally里的值 3.在try体和finally体里都没有return,只有最下面有个return时,以finally体里为准 4.当try体和finally体里都有return,以finally体里为准 @SuppressWarnings("finally") public int getResult(){ int i = 0; //实例一 /*try{//值为1 i = 1; return i; }finally { i = 5; }*/ //实例二 /*try{//值为5 i = 1; }finally { i = 5; } return i;*/ //实例三 try{//值为5 i = 1/0; return i; }catch(Exception e) { e.printStackTrace(); }finally { i = 5; return i; } // return i; }
b.对于返回值是可变的,则不管是上面哪种情况都要改变值,如下,输出结果都为I LOVE YOU public StringBuffer getStringResult() { StringBuffer str =new StringBuffer("I"); try{//值为1 str.append(" LOVE "); }finally { str.append(" YOU "); } return str; }
|
CopyRight 2018-2019 实验室设备网 版权所有 |