`
kakac001
  • 浏览: 12670 次
  • 性别: 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics