您的位置:首页 > 编程语言 > Java开发

java finally return

2015-10-23 00:29 375 查看
我已经在之前的文章中已经讲过finally块,这篇文中来学习return语句包含在try catch或者finally中的时候finally块的行为情况。

看看下边的代码,你怎么认为?即使这有return false语句finally也一定会执行吗?

try {
//try block
...
return success;
}
catch (Exception ex) {
//catch block
.....
return failure;
}
finally {
System.out.println("Inside finally");
}


答案是肯定的,finally块会每次都执行,唯一不执行的情况是遇到System.exit()。

finally:有return的例子:

class FinallyDemo
{
public static int myMethod()
{
try {
//try block
return 0;
}
finally {
//finally
System.out.println("Inside Finally block");
}
}
public static void main(String args[])
{
System.out.println(FinallyDemo.myMethod());
}
}


输出结果:

Inside Finally block
0


finally块中的返回语句会重写try或者是catch块中的语句吗?

是的,finally会导致try或者catch中的返回值被重写,看下边代码的例子:

public static int myTestingFuncn(){
try{
....
return 5;
} finally {
....
return 19;
}
}


上边的代码会返回19,因为try块中的return已经被finally重写了。

原文链接:http://beginnersbook.com/2013/05/java-finally-return/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: