黑马程序员技术交流社区
标题:
return的应用问题??
[打印本页]
作者:
曹思敏
时间:
2013-6-8 11:38
标题:
return的应用问题??
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在
return前还是后?
作者:
luohan
时间:
2013-6-8 12:34
如果try{}里面的code出现了return 进行返回,那么就不会继续往下执行,也就不会执行到finally{}
作者:
武志红
时间:
2013-6-8 16:21
return 语句是在finally之后进行的,如果try中有return ,那么他并不会马上就返回,而是指导finally结束之后才执行返回。如果finaly里面有新的return 那这个新的return将会覆盖原来的return。需要注意的是,在finally中是不能改变原有的返回值,只能替换原来的return。比如说在try 中有一个返回语句:return str;(假设现在str的值为“ abc”),你在finally中将str赋值为str=“abcd”,并没有重新写返回语句,那么最终返回的值依然是abc。
同样,finally也能覆盖catch中的,return。下面给你一段代码,运行一下你就知道了
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class TestTry {
public static void main(String...args){
System.out.println(getString());
}
public static String getString(){
String string ="";
try{
string="abc";
File file=new File("/ing.png");
InputStream is=new FileInputStream(file);
return string;
}catch (FileNotFoundException e){
return "abcd";
}
finally{
return "abcde";
}
}
}
作者:
杨增坤
时间:
2013-6-13 08:12
会背执行的,因为finally{}里面的是属于异常处理的。所以他会在try{}里面执行reurn之前会被先执行额,希望对你有所帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2