本帖最后由 张治国 于 2014-4-4 10:26 编辑
我的这种情况是先执行finally,return不执行
原因:在执行return之前它会检查一下后面是否有finally,如果没有就直接返回,如果有就先执行finally,return就不执行了。
举例:
public class Test {
public static String start()
{
try {
return fun1();
}
finally {
return fun2();
}
}
public static String fun1()
{
return "return被执行";
}
public static String fun2()
{
return "finally被执行";
}
public static void main(String[] args)
{
System.out.print(new Test().start());
}
}
执行结果是finally被执行
|
|