`
kakac001
  • 浏览: 13032 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于finally的生效范围

阅读更多
一直以为finally是在一个try-catch块中,不管里面有没抛异常,
最终都会去执行的一个块,比如
public void testFinallyMethod(){
  try{
     System.out.println(">>>do something<<<");
     System.out.println(">>>do other thing<<<");
  }catch (Exception e){

  }finally{
     System.out.println(">>>always do something<<<");
  }
}


然而今天同事有个需求,就是在try块中return/break/continue
那么finally块是否会继续执行呢?
答案是肯定的.
public void testFinallyMethod(){
  try{
     System.out.println(">>>do something<<<");
     return;//break,continue 也一样,当然这2种需要在循环中
     System.out.println(">>>do other thing<<<");
  }catch (Exception e){

  }finally{
     System.out.println(">>>always do something<<<");
  }
}

运行后的结果是
>>>do something<<<
>>>always do something<<<
1
0
分享到:
评论

相关推荐

    java面试32变态题

    - 断言默认是禁用的,需要明确启用才能生效。 #### 六、GC是什么?为什么需要GC? - **GC(Garbage Collection)**:垃圾收集机制,自动管理内存,自动检测并释放不再使用的对象所占用的内存空间。 - **原因**: ...

    Java程序员和高级程序员面试30题(英语).pdf,这是一份不错的文件

    同步块的锁作用范围更小,只对块内的代码生效,从而减少死锁的风险。同步方法则会锁定整个方法,可能导致更大的锁粒度和潜在的性能影响。 4. **关键字`transient`**: `transient`关键字用于标记成员变量,表示该...

    Java笔试面试题详解

    request对象用于获取请求参数,response对象用于设置响应头和输出内容,session用于存储会话数据,application对象代表全局应用范围内的数据。 4. **数据库优化**:常见的数据库优化方法包括创建合适的索引以加快...

    iPhone Application Programming L05: Debugging and Performance Tuning

    - 访问`NSArray`之外的数据范围。 - 对象上调用未定义的方法。 为了处理这些问题,文件中提供了异常抛出和捕获的基本语法示例: ```objective-c // 抛出异常 [NSException raise:@"Error" format:@"This is broken...

    C++Builder注册表编程实例详解

    - **LazyWrite属性**:控制写入操作是否立即生效。默认为`true`,意味着改动将在`CloseKey()`调用后才写入注册表,这有助于提升性能。如果希望立即更新注册表,应先将此属性设为`false`。 - **CreateKey函数**:...

    MongoDB游标超时问题的4种解决方法

    上述代码中的`with`语句确保了游标在退出范围时会被关闭,即使在处理数据过程中出现异常,`finally`块的清理操作也不会被执行。 综合来看,选择哪种解决方案取决于具体场景。对于大型数据集,可能需要结合减小批量...

    java课堂笔记_自己总结的

    解决方法是将系统的日期设置到一个较早的时间点,使试用期重新生效。 3. **数据库卸载**: 若数据库无法正常启动,应避免直接通过控制面板卸载,而是应该通过重新运行安装程序并选择卸载选项来进行。 4. **超级管理员...

    findbugs报告问题含义

    4. **TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED**:使用了注解限制的值,但限制从未生效。检查注解的使用是否正确,确保类型约束实际需要。 5. **TLW_TWO_LOCK_WAIT**:等待两个已持有的锁,这是一个多线程错误。...

    python词汇.docx

    - **documentation**:文档,提供关于软件使用的详细信息。 - **associate**:关联,将文件类型与特定的应用程序绑定。 - **shortcuts**:快捷方式,提高工作效率的技巧。 - **setup**:安装过程,设置新软件的过程...

    Findbugs缺陷详解与英文代号的对照表

    - **解释**: 计算32位随机整数的绝对值时,可能会遇到溢出问题,因为负数的绝对值可能是正的最大值加一,超出范围。 - **建议**: 使用适当的方法来避免溢出,例如,生成非负随机数或使用64位整数。 #### rule....

    超级有影响力霸气的Java面试题大全文档

    通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 21、heap和stack有什么区别。  栈是一种线形集合,其添加和删除元素的操作应在同一段...

Global site tag (gtag.js) - Google Analytics