首页 > 编程语言 > 详细

Java----finally

时间:2018-11-12 22:05:36      阅读:177      评论:0      收藏:0      [点我收藏+]

1.无return语句的执行顺序

try{
    //可能抛出异常
}catch(Exception e){
    //捕获异常
}finally{
    //不管有无异常都执行
}

  finally内的代码不管有无异常都会执行,具体来说

  • 如果没有异常,在try代码块执行完毕后执行;
  • 如果有异常且被catch捕获,在catch代码块执行完毕后执行;
  • 如果有异常单没有catch捕获,在提交给上层调用者前执行;

2.带有return的语句执行顺序

  • 如果在try或者cathc里面有return语句,finally没有return,则先执行finally代码块,然后进行return,但是finally并不能改变return的返回值;
  • 如果finally里面也有return,不仅会覆盖掉try和catch的返回值,并且掩盖try和catch的异常,如果finally里面也有异常,会原异常就会被覆盖掉;
  • 如果try中是System.exit(0),则finally不会被执行;
  • 如果try-finally所在的线程被杀死了,finally也不会被执行。

3.注意

  • 不要在finally中使用return语句;
  • finally总是执行的,除非程序或者线程被中断了;
  • try-catch-finally中,catch并不是必须的,可以只有try-finally,表示的是异常向上传递。

 参考:https://www.cnblogs.com/daixiaotian/p/6943904.html

Java----finally

原文:https://www.cnblogs.com/ZeGod/p/9949362.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!