- 浏览: 495883 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
Java finally语句到底是在return之前还是之后执行
1.没出现异常时,执行try块里return前的所有语句(包括return里的语句)->finally语句->try块里return指令。
2.出现异常时,执行try块里异常前的所有语句->catch语句->finally语句->try块外面的语句。
3.finally语句里有return时,try块外面不用有return,try块里面可以不用有return(因为会覆盖里面的return)
4.catch语句里有return,出现异常时,执行try块里异常前的所有语句->catch语句return指令n前的所有语句->finally语句->catch块里return指令。
5.finally语句里有return时,最后返回值以finally语句里的逻辑处理结果返回。
6.finally语句里没有return时,最后返回值以try(或catch)语句里的逻辑处理结果返回(finally语句的改变不会影响到那时的结果)(这与java引用传递与值传递相关)。
运行结果是:
1.return语句已经执行了再去执行finally语句,不过并没有直接返回,而是等finally语句执行完了再返回结果。
2.finally语句是在try的return语句执行之后,return返回之前执行。
运行结果是:
1.finally块中的return语句会覆盖try块中的return返回。
参考原文:http://www.cnblogs.com/lanxuezaipiao/p/3440471.html
1.没出现异常时,执行try块里return前的所有语句(包括return里的语句)->finally语句->try块里return指令。
2.出现异常时,执行try块里异常前的所有语句->catch语句->finally语句->try块外面的语句。
3.finally语句里有return时,try块外面不用有return,try块里面可以不用有return(因为会覆盖里面的return)
4.catch语句里有return,出现异常时,执行try块里异常前的所有语句->catch语句return指令n前的所有语句->finally语句->catch块里return指令。
5.finally语句里有return时,最后返回值以finally语句里的逻辑处理结果返回。
6.finally语句里没有return时,最后返回值以try(或catch)语句里的逻辑处理结果返回(finally语句的改变不会影响到那时的结果)(这与java引用传递与值传递相关)。
public class FinallyTest1 { public static void main(String[] args) { System.out.println(test1()); } public static int test1() { int b = 20; try { System.out.println("try block"); return b += 80; } catch (Exception e) { System.out.println("catch block"); } finally { System.out.println("finally block"); if (b > 25) { System.out.println("b>25, b = " + b); } } return b; } }
运行结果是:
try block finally block b>25, b = 100 100
1.return语句已经执行了再去执行finally语句,不过并没有直接返回,而是等finally语句执行完了再返回结果。
2.finally语句是在try的return语句执行之后,return返回之前执行。
public class FinallyTest2 { public static void main(String[] args) { System.out.println(test2()); } public static int test2() { int b = 20; try { System.out.println("try block"); return b += 80; } catch (Exception e) { System.out.println("catch block"); } finally { System.out.println("finally block"); if (b > 25) { System.out.println("b>25, b = " + b); } return 200; } // return b; } }
运行结果是:
try block finally block b>25, b = 100 200
1.finally块中的return语句会覆盖try块中的return返回。
参考原文:http://www.cnblogs.com/lanxuezaipiao/p/3440471.html
发表评论
-
选举算法
2022-06-17 08:48 427选举算法 常用的选举 ... -
elasticSearch使用
2022-04-27 08:42 416ElasticSearch 基于Apache Lucene构建 ... -
IDEA 快捷键
2022-03-02 16:55 245大小写转换快捷键 ctr+shift+u IDEA ... -
每天学到的技术点3
2022-02-21 20:01 2451.TEXT与BLOB的区别,二者 ... -
zookeeper dubbo 安装
2021-12-04 19:27 315docker-machine ssh default d ... -
将博客搬至CSDN
2021-11-18 19:57 188将博客搬至CSDN -
docker mysql 主从安装
2021-11-10 16:55 235docker run -d -p 13306:3306 --n ... -
rocketmq安装部署.txt
2021-11-07 19:10 218docker search rocketmq docke ... -
JVM 调优与测试
2021-05-22 22:24 580VisualVM 能够监控线程,内存情况,查看方法的CPU ... -
百度人脸识别
2021-05-21 16:11 362package com.gaojinsoft.htwy.y20 ... -
springboot tomcat 参数配置与数据库连接池多少的性能分析
2021-05-12 22:15 559参数配置与数据库连接池多少的性能分析 tomcat线程数 ... -
springBoot tomcat配置参数说明
2021-05-12 09:13 3018#最大连接数 server.tomcat.max-connec ... -
技术选型
2021-01-29 17:34 2911.移动端组件vux,vant,vant好点,文档好的,基于v ... -
方便开发调试和问题跟踪
2021-01-01 10:17 2481.外网最好可以连接数据库 2.关键信息可以在接口返回信息, ... -
log4j2应用
2020-07-23 14:16 363https://blog.csdn.net/giventian ... -
文件上传下载
2020-07-06 13:16 4191.文件ID,名字(源,目标),大小,路径(/aa/bb/s. ... -
Jenkins脚本
2020-03-12 17:55 443#!/bin/bash -ilx echo "开始 ... -
base64与file 相互转换
2019-10-23 18:19 775base64与file 相互转换 import org. ... -
百度身份证识别
2019-10-18 18:19 672package com.gaojinsoft.htwy.y20 ... -
钉钉开发
2019-09-17 20:16 432钉钉开发 开发者帐号 1357047443 x***310* ...
相关推荐
1. 如果`try`块中的代码没有抛出异常,那么`finally`块会在`try`块结束时执行,之后控制权将传递给相应的`return`语句。 2. 如果`try`块中的代码抛出一个未捕获的异常,`finally`块仍然会执行,然后再将异常传递给...
Java语言finally语句详解,finally到底是在return之前还是之后执行.zip
那么,finally 语句是在 try 的 return 之前还是之后执行的呢?这个问题引起了很多人的探讨和争论。通过实验和示例,我们可以证明 finally 语句是在 try 的 return 语句执行之后,return 返回之前执行的。 在下面的...
在 Java 规范中规定,在 try-catch-finally 中,如果 try-finally 或者 catch-finally 中都有 return,则两个 return 语句都执行,并且最终返回到调用者那里的是 finally 中 return 的值;而如果 finally 中没有 ...
Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。
在执行 try、catch、finally 语句时,finally 语句总是最后执行的,也就是说,即使在 try 或 catch 语句中有 return 语句,finally 语句仍然会执行。finally 语句是在 return 语句执行之后、返回之前执行的,这意味...
finally语句是在try的return语句执行之后,return返回之前执行的。这意味着,如果在try块中执行了return语句,finally语句将在return语句执行之前执行。如果finally语句中包含了return语句,即使前面的catch块重新抛...
还有情况是当一个线程在执行try语句块或者catch语句块时被打断(interrupted)或者被终止(killed),与其对应的finally语句块可能不会执行。还有更极端的情况,就是在线程运行try语句块或者catch语句块时,突然死机或者...
首先,`finally`块中的代码总是会被执行,除非程序在执行到`finally`块之前就退出了JVM(例如通过`System.exit()`)。即使在`try`块或`catch`块中有`return`语句,`finally`块内的代码也会在返回之前被执行。这是...
第一:return语句并不是函数的终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回) 第二:finally里面不建议放return语句,根据需要,return语句...
## 二.finally finally 一定会被执行,如果 finally 里有 return 语句,则覆盖 try/catch 里的 return , 比较爱考的是 finally 里没有 return 语句,这时... finally到底是在return之前执行还是return之后执行?
#### try-catch-finally语句 Java中的异常处理机制通常包括`try`、`catch`和`finally`三个关键字。`try`块包含了可能引发异常的代码;`catch`块则用于捕获并处理这些异常;而`finally`块无论是否发生异常都会被执行...
在Java编程语言中,`return` 语句和 `finally` 语句的相互作用是一个重要的概念,尤其是在处理异常处理时。`finally` 语句块通常用于确保某些代码无论是否发生异常都会被执行,而 `return` 语句用于提前结束方法并...
Nginx配置文件详解Linux 安装JenkinsJAVA 多线程详解java 多线程学习How to create a Hello World with IntelliJ and Aspect JJava各种对象(...,JavaBeans)的区分Java finally语句到底是在return之前还是之后执行...
举个例子,当`try`语句块在执行前就返回了(`return`语句)或抛出了异常,如果`try`块没有被执行,相应的`finally`块也不会执行。在清单1的示例中,由于`i = i / 0`导致了`ArithmeticException`,程序在进入`try`块...
在Java编程语言中,`try-catch-finally`语句块是异常处理的关键构造,它允许程序员优雅地处理可能出现的异常情况。`return`语句则用于从方法中返回一个值或者结束方法的执行。当这两者结合在一起时,就会出现一些...
跳转语句用于在代码中进行非顺序执行流控制,Java提供了break、continue、label、return等跳转语句。其中,break用于立即退出最内层的循环或switch语句,continue用于跳过当前循环的剩余部分并开始下一次循环迭代,...
即使`try`或`catch`块中存在`return`语句,`finally`块的代码也会被执行。这确保了程序的整洁和资源的有效管理。 在Java中,`try-catch-finally`结构可以单独使用,也可以嵌套使用。嵌套的`try-catch-finally`允许...
关于`return`语句的使用,有一个重要的原则:既不在`try`内部使用`return`语句,也不在`finally`内部使用`return`语句,而应该在`finally`语句之后使用`return`来表示函数的结束和返回。 通过以上的详细介绍,我们...
- 无论try是否发生异常,finally语句都会执行- 如果try/catch中包含控制转移语句(return、continue、break),finally