会在return中间执行!

try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回!但此时会出现两种情况:

①、如果finally中也有return,则会直接返回并终止程序,函数栈中的return不会被完成!;

②、如果finally中没有return,则在执行完finally中的代码之后,会将函数栈中的try中的return的内容返回并终止程序;

catch同try;


下面看一下代码:

 public static String tryTest(){try {System.err.println("try");return "try return ";}catch (Exception e){System.err.println("catch");e.printStackTrace();}finally {System.err.println("finally");return "finally";}//return "return";}public static void main(String[] args) {//try//finally//try return// 将finally中的return去掉,打印结果如上System.err.print(tryTest());// try//finally//finally// 将finally中的return去掉,打印结果如上}

try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?相关推荐

  1. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的...

    这是一个很经典的面试题:try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后?话不多说,直接看代码: 运行结果为: 通过代码,可 ...

  2. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后

    一般答案:会执行,在方法返回调用前执行.准确的说是在return中间执行. 下面举个例子: public class Test {public static void main(String[] ar ...

  3. 常见问题:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候执行?

    Java的异常机制主要依赖于try.catch.finally.throws.throw五个关键字.其中 try{可能引发异常的代码:} catch{处理这种异常的代码:} finally{回收在tr ...

  4. Try{}里有一个return语句,那么紧跟在这个try后面的finally{}里的code会不会执行,什么时候执行,在return之前还是之后?

    Try{}里有一个return语句,那么紧跟在这个try后面的finally{}里的code会执行的. finally 语句总会执行,除非遇到一些特殊情况,如System.exit(0) return ...

  5. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

    try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 答:会执行,在return前执行 public c ...

  6. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后

    在return中间执行,代码示例 package com.mybatis.employee.test;public class Main {static int test(){int x = 1;Sy ...

  7. try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

    会在return中间执行! try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让 ...

  8. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行

    转载自https://blog.csdn.net/jackfrued. 在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是 ...

  9. try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?...

    这是一道面试题,首先finally{}里面的code肯定是会执行的,至于在return前还是后, 看答案说的是在return后执行,我觉得不对,百度了一下,有说return前的,有说return后的, ...

最新文章

  1. 如何在Windows上做Python开发?微软出了官方教程(附链接)
  2. 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...
  3. [Android] Android颜色对应的xml配置值
  4. 剑指offer-孩子们的游戏(圆圈中最后剩下的数)
  5. NeurIPS 2021 Spotlight | PCAN: 高效时序建模, 提升多目标追踪与分割性能
  6. Kudu : kudu 主键相关
  7. appium学习【三】:截图时,图片命令中包含当前的函数名,以区分错误是在哪个函数报的...
  8. Node.js log4js日志记录
  9. Opengl 渲染YUYV(YUV422)图像
  10. C语言 数据结构 线性循环队列 基本操作代码
  11. 基于JDBC的JavaWeb开发项目之——网上教务系统
  12. mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
  13. C语言红楼梦人物分析系统
  14. Java 访问 HDFS操作
  15. Elasticsearch:在 Java 客户端中使用 scroll 来遍历搜索结果 - Elastic Stack 8.x
  16. 华北地区博友链接集合(陆续增加中)
  17. Ancient Messages HDU - 3839
  18. 让甲方爸爸看PDF格式的图纸,该测量长度?
  19. C# 打印PPT幻灯片
  20. SQLServe 配置管理器不见了

热门文章

  1. RT-Thread 传感器软件包归类
  2. java基于springboot+vue+elementui的实验室预约管理系统 前后端分离
  3. PHP 根据文字内容添加图片上实现自动换行的小程序
  4. 定义char dog[]=wang\0miao;那么sizeof(dog)与strlen(dog)分别是多少:
  5. R WinBugs network meta analysis
  6. crs harmony驱动_csr harmony驱动管理软件下载|
  7. 一个公众号绑定多个商户支付
  8. 艾瑞泽5无损换挡机构
  9. 视频聊天ViscomSoft SDK ActiveX 4.0
  10. 看漫画学Python 第八章代码