Java 中 try、catch、finally 语句块的执行顺序
- 假设代码顺序书写如下:try → catch → finally → 其他代码
- 则:
- 1、正常执行顺序:try → catch → finally → 其他代码
- 2、try,catch和finally和其他代码的执行条件:
- 先执行try。
- 只要try中有异常,catch就会执行;
- finally总会执行;
- 其他代码:
- 如果finally中没有return:其他代码会执行;
- 如果finally中有return:其他代码不会执行;
- 3、方法的返回结果确定:
- finally 有return:(finally中的return)
- 返回结果为 finally 中的值,try(+catch,+ 其他代码)的 return 值会被覆盖掉。
注:有return,其他代码不会执行。所以finally就是最终执行的代码。故返回结果为 finally 中的值。
- 返回结果为 finally 中的值,try(+catch,+ 其他代码)的 return 值会被覆盖掉。
- finally 没有return:(正常执行顺序返回结果)
- 返回结果就是正常代码执行顺序的返回结果。try(+catch,+ 其他代码)的 return 会被寄存起来。一般 finally 不会修改返回值,除非 finally 修改了该引用指向的实际内存内容。
注:没有return,其他代码会执行,finally不是最终执行的代码。返回结果为正常执行顺序的返回结果。
- 返回结果就是正常代码执行顺序的返回结果。try(+catch,+ 其他代码)的 return 会被寄存起来。一般 finally 不会修改返回值,除非 finally 修改了该引用指向的实际内存内容。
- finally 有return:(finally中的return)
- 参考:
- java 的异常、finally 和 return - wthfeng 的专栏 - CSDN 博客 https://blog.csdn.net/wthfeng/article/details/89329161
- Java 中 try、catch、finally 语句块的执行顺序 - 换了马甲的小强的博客 - CSDN 博客 https://blog.csdn.net/cockroach02/article/details/80186723
Java 中 try、catch、finally 语句块的执行顺序的更多相关文章
- 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)
Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...
- Java中try catch finally语句中含return语句的执行情况总结-编程陷阱
前言:有java编程基础的人对java的异常处理机制都会有一定了解,而且可能感觉使用起来也比较简单,但如果在try catch finally语句块中遇到return语句,开发者可能就会遇到一些逻辑问 ...
- Java中try catch finally语句中含有return语句的执行情况(总结版)
在这里看到了try >但有一点是可以肯定的,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也 ...
- Java中try catch finally语句中含有return语句的执行情况
finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面 ...
- java 抛出异常与finally的混用对于语句块的执行顺序的影响
代码如下: package test1; public class EmbededFinally { public static void main(String args[]) { int resu ...
- Java学习笔记 - 类方法与代码块的执行顺序
类的初始化顺序 使用一个简单的父子类例子来做示范,代码执行顺序在代码后有标注. class Parent { public static String p_StaticField = "父类 ...
- 关于java中三种初始化块的执行顺序
许多小伙伴对于java中的三种初始化块的执行顺序一直感到头疼,接下来我们就来分析一下这三种初始化块到底是怎么运行的.有些公司也会将这个问题作为笔试题目. 下面通过一段代码来看看创建对象时这么初始化块是 ...
- try...catch...finally语句块
try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块. try-catch-finally语句入门: 1.try-catch-finally语 ...
- java中的异常以及 try catch finally以及finally的执行顺序
java中的 try.catch.finally及finally执行顺序详解: 1.首相简单介绍一下异常以及异常的运行情况: 在Java中异常的继承主要有两个: Error和Exception 这两个 ...
随机推荐
- Python 10.2.1
- P2168 [NOI2015]荷马史诗 k叉哈夫曼树
思路:哈夫曼编码 提交:1次(参考题解) 题解:类似合并果子$QwQ$ 取出前$k$小(注意如果叶子结点不满的话要补全),合并起来再扔回堆里去. #include<cstdio> #inc ...
- 事务日志已满 请参阅sys.databases中的log_reuse_wait_desc列解决办法
http://www.myexception.cn/sql-server/153219.html http://blog.csdn.net/kedingboy12345/article/details ...
- [Luogu] 软件包管理器
https://www.luogu.org/problemnew/show/P2146 几乎是一个裸题 #include<cstdio> #include<cstring> # ...
- P2051 [AHOI2009]中国象棋——DP(我是谁,我在哪,为什么)
象棋,给你棋盘大小,然后放炮(炮的数量不限),不能让炮打到其他的炮,问方案数: 数据n,m<=200; 状态压缩似乎能做,但是我不会: 因为只要状态数,所以不必纠结每种状态的具体情况: 可以想出 ...
- XXE外部实体注入漏洞——PHP
前言 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数据进行处理时引发的安全问题. 在XML1.0标准 ...
- 2019PKUWC游记
有的时候,不是你不会 而是你,认为你不会 ——*Miracle* 本篇游记就简单写了 Day-inf 犹豫许久,还是选择了北大 不是因为喜欢——甚至恰好相反 而是,听说清华高手较多,约型单一, 于是我 ...
- Linux操作系统load average过高,kworker占用较多cpu
Linux操作系统load average过高,kworker占用较多cpu 今天巡检发现,mc1的K8S服务器集群有些异常,负载不太均衡.其中10.2.75.32-34,49的load averag ...
- PYTHON -----pyinstaller的安装
这几天一直在安装pyinstaller库,发现了一个好方法 因为一直使用pip安装,我只能介绍一下pip安装pyinstaller的方法的注意事项 1:一般pip会在安装python的Scripts文 ...
- 如何构建自己的docker镜像
需求情况:springboot项目想要部署到docker里面,如何部署? 步骤如下: 1.将jar包上传linux服务器 /usr/local/dockerapp 目录,在jar包所在目录创建名为 D ...