码迷,mamicode.com
首页 > 编程语言 > 详细

Java----finally

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

标签:不能   cep   pre   code   语句   并且   执行   exce   return语句   

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

标签:不能   cep   pre   code   语句   并且   执行   exce   return语句   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!