Java finally语句到底是在return之前还是之后执行?
来源:互联网 发布:niginx 域名配置 编辑:程序博客网 时间:2024/06/15 22:01
至少有两种情况下finally语句是不会被执行的:
(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。
(2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止Java虚拟机JVM的,连JVM都停止了,所有都结束了,当然finally语句也不会被执行到。
其余是这样的
finally语句是在try的return语句执行之后,return返回之前执行。
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 blockfinally blockb>25, b = 100100
说明return语句已经执行了再去执行finally语句,不过并没有直接返回,而是等finally语句执行完了再返回结果。
public class FinallyTest1 { public static void main(String[] args) { System.out.println(test11()); } public static String test11() { try { System.out.println("try block"); return test12(); } finally { System.out.println("finally block"); } } public static String test12() { System.out.println("return statement"); return "after return"; } }
运行结果
try blockreturn statementfinally blockafter return
阅读全文
0 0
- finally语句到底是在return之前还是之后执行?
- finally语句到底是在return之前还是之后执行?
- JAVA基础(30) Java代码finally语句到底是在return之前还是之后执行?
- Java finally语句是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- 【Java】finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?
- Java finally语句到底是在return之前还是之后执行?---第一篇
- tomcat 安装
- cpu架构
- sql中索引不会被用到的几种情况
- HttpServletRequest和HttpServletResponse
- JAVA NIO之浅谈内存映射文件原理与DirectMemory
- Java finally语句到底是在return之前还是之后执行?
- 数据库添加用户(权限、删除等操作)
- 虚拟机下安装centos7遇到的问题
- linux 环境变量
- VB.net 程序需连接Oralce数据库查询 日志提示“数据类型不被支持”
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- linux 输入输出重定向
- 小程序反盗链 referer
- linux 管道