Java中,finally在try语句块中的return前执行还是后执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中,finally在try语句块中的return前执行还是后执行相关的知识,希望对你有一定的参考价值。
参考技术A 1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
java中的“try - catch -finally”结构中的“finally”都有哪些用途
编程人员一般都用finally做些什么事情
可以这么理解try块中的内容是在无异常发生时执行到结束
catch块中的内容,是在try块中内容发生catch所声明的异常时,跳转到catch块执行
finally块则是无论是否发生异常,都会执行finally块的内容
所以,代码逻辑中有需要无论发生什么都必须执行的代码,则可以放在finally块中
例如:最常见的就是把关闭connection、释放资源等的代码放在finally块中 参考技术A 无异常执行 try
有异常执行catch
不管有无异常都要执行 finally
finally的作用用来关闭流、关闭连接、释放或销毁资源。 参考技术B 参考一下面实体的标准答案:
题目: final, finally, finalize的区别。
答案:
final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。方法的参数被final修饰表示在方法体内,该参数的值不可以被修改。
private final String ss = "ss";
public final void m()
public String m2(final String param)
finally在异常处理时提供finally块来执行任何清除操作。无论有没有异常被抛出、捕捉,finally块都会被执行。
finalize是方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 参考技术C 我也是刚刚才看了关于finally的,上面介绍说是为了放置清理代码。
以上是关于Java中,finally在try语句块中的return前执行还是后执行的主要内容,如果未能解决你的问题,请参考以下文章
Java中,finally在try语句块中的return前执行还是后执行
Java中try catch finally语句中含有return语句的执行情况
Java中try catch finally语句中含有return语句的执行情况