• finally回收资源


      Java中的垃圾回收机制,也就是GC不会回收任何物理资源,垃圾回收机制只回收堆内存中对象所占用的内存,所以其他的物理资源需要用finally来回收.

      如果try块中的某条语句引起了异常,该异常就会被catch块捕获,但是try块异常语句后面的其他语句通常不会获得执行机会,这将会导致该语句后的资源回收语句得不到执行,所以为了保证一定能回收try块中打开的物理资源,就要用到finally块.

      不管哪一个catch块被执行,甚至在try块中有continue/break/return连,finally块中的语句都一定会被执行.但是如果调用了退出虚拟机的方法(System.exit()),finally块就不会执行.

      异常处理结构中,try块后面必须要有catch/finally块,它们是充要条件,finally块必须位于所有的catch块的后面.另外不要再finally块中使用例如return/throw等导致方法终止的语句,一旦在finally块中使用了这些语句,就会导致try/catch块中的return/throw语句失效.

      当Java程序执行try/catch块的时候如果遇到了return/throw语句都会导致该方法立即结束,但是系统在执行这两个语句之前会去寻找异常处理流程中是否存在finally块,如果没有方法立即结束,否则会先执行finally块中的语句,只有当finally块中的语句执行完毕,才会返回try块中去执行return/throw语句;如果在finally块中也使用了return/throw等导致方法结束的语句,那么相当于是程序在finally块中就被终止了,系统将不会跳回try/catch块中.

      

  • 相关阅读:
    javascript中实现类似php 的var_dump
    WKWebView与js交互中产生的内存泄漏
    图片按照指定比例裁剪
    php解析json字符串变量总是空白null
    CocoaPods | iOS详细使用说明
    腾讯IM的那些坑
    JS---案例:协议按钮禁用(倒计时)
    JS---另一个定时器:一次性的
    JS---part5 课程介绍 & part4 复习
    JS---案例:美女时钟
  • 原文地址:https://www.cnblogs.com/maopao55555/p/6160830.html
Copyright © 2020-2023  润新知