try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
会在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前还是后?相关推荐
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的...
这是一个很经典的面试题:try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后?话不多说,直接看代码: 运行结果为: 通过代码,可 ...
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后
一般答案:会执行,在方法返回调用前执行.准确的说是在return中间执行. 下面举个例子: public class Test {public static void main(String[] ar ...
- 常见问题:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候执行?
Java的异常机制主要依赖于try.catch.finally.throws.throw五个关键字.其中 try{可能引发异常的代码:} catch{处理这种异常的代码:} finally{回收在tr ...
- Try{}里有一个return语句,那么紧跟在这个try后面的finally{}里的code会不会执行,什么时候执行,在return之前还是之后?
Try{}里有一个return语句,那么紧跟在这个try后面的finally{}里的code会执行的. finally 语句总会执行,除非遇到一些特殊情况,如System.exit(0) return ...
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 答:会执行,在return前执行 public c ...
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
在return中间执行,代码示例 package com.mybatis.employee.test;public class Main {static int test(){int x = 1;Sy ...
- try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
会在return中间执行! try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让 ...
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行
转载自https://blog.csdn.net/jackfrued. 在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是 ...
- try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?...
这是一道面试题,首先finally{}里面的code肯定是会执行的,至于在return前还是后, 看答案说的是在return后执行,我觉得不对,百度了一下,有说return前的,有说return后的, ...
最新文章
- 如何在Windows上做Python开发?微软出了官方教程(附链接)
- 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...
- [Android] Android颜色对应的xml配置值
- 剑指offer-孩子们的游戏(圆圈中最后剩下的数)
- NeurIPS 2021 Spotlight | PCAN: 高效时序建模, 提升多目标追踪与分割性能
- Kudu : kudu 主键相关
- appium学习【三】:截图时,图片命令中包含当前的函数名,以区分错误是在哪个函数报的...
- Node.js log4js日志记录
- Opengl 渲染YUYV(YUV422)图像
- C语言 数据结构 线性循环队列 基本操作代码
- 基于JDBC的JavaWeb开发项目之——网上教务系统
- mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
- C语言红楼梦人物分析系统
- Java 访问 HDFS操作
- Elasticsearch:在 Java 客户端中使用 scroll 来遍历搜索结果 - Elastic Stack 8.x
- 华北地区博友链接集合(陆续增加中)
- Ancient Messages HDU - 3839
- 让甲方爸爸看PDF格式的图纸,该测量长度?
- C# 打印PPT幻灯片
- SQLServe 配置管理器不见了
热门文章
- RT-Thread 传感器软件包归类
- java基于springboot+vue+elementui的实验室预约管理系统 前后端分离
- PHP 根据文字内容添加图片上实现自动换行的小程序
- 定义char dog[]=wang\0miao;那么sizeof(dog)与strlen(dog)分别是多少:
- R WinBugs network meta analysis
- crs harmony驱动_csr harmony驱动管理软件下载|
- 一个公众号绑定多个商户支付
- 艾瑞泽5无损换挡机构
- 视频聊天ViscomSoft SDK ActiveX 4.0
- 看漫画学Python 第八章代码