黑马程序员技术交流社区

标题: 假如在catch里面有return语句,请问finally里面的代码还会执... [打印本页]

作者: 张少军    时间: 2015-8-13 23:01
标题: 假如在catch里面有return语句,请问finally里面的代码还会执...
1、不管有木有出现异常,finally块中代码都会执行;
  2、当try和catch中有return时,finally仍然会执行;
  3、finally是在return后面的表达式运算后执行的
   (此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),
   所以函数返回值是在finally执行前确定的;
  4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
作者: 蓬头小道士    时间: 2015-8-13 23:09
会,finally是执行必须要执行的代码
作者: kingxiao    时间: 2015-8-13 23:22
一句话 finally中的内容必须执行
作者: ake    时间: 2015-8-14 03:00
finally无论如何,有了就执行
作者: 张少军    时间: 2015-8-14 22:10
ake 发表于 2015-8-14 03:00
finally无论如何,有了就执行

System.exit(0);这个可以阻止finally不?
作者: keviner    时间: 2015-8-14 22:33
张少军 发表于 2015-8-14 22:10
System.exit(0);这个可以阻止finally不?

可以                       
作者: wygsqsj    时间: 2015-8-14 22:35
keviner 发表于 2015-8-14 22:33
可以

想要制止他的超神,就只有exit(0)了
作者: 张少军    时间: 2015-8-14 22:36
keviner 发表于 2015-8-14 22:33
可以

除了这个方法应该别的都不能阻止吧?当然断电不算




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2