写在开头这个问题真的困扰了我很久,感觉简直像一个哲学(?)问题。私下和朋友们对这个问题讨论了很久,又在网上查找了很多相关资料,终于还是把这个问题理清楚了。(自认为我的结论是:在try…catch语句中,当程序执行完return后的表达式后,会转而执行finally语句块,最后再继续执行return。…这个答案看起来是不是还是很哲学?下面我来给出详细解释。returnfinally的定义首先来看一
转载 2024-01-16 11:25:32
0阅读
finally块里面的代码一般都是会执行的,除非执行 System.exit(int),停止虚拟机,断电。1.若try代码块里面有return ,假设要ret
转载 2022-10-24 17:39:06
99阅读
在用皕杰报表做项目时遇到的一个问题,javareturnfinally的执行顺序。如果finally修改的是常量,返回的值并不会修改,如果finally修改的是对象的属性值,返回的值会修改。总结执行顺序:1.先执行一部分的return,先把返回的结果存到一段内存;2.然后执行finally;3.最后再执行后一部分return,返回结果值;(常量和对象的区别在于:常量存的是常量值,常量值
原创 2021-02-26 15:12:52
1600阅读
1点赞
以前一直觉得有这个问题存在但也没有深究,今天来彻底探讨一下二者之间的关系预备知识首先是关于return返回的底层知识java方法是在栈幀执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域:
Javareturnfinally的执行顺序 finally不会执行的情况:     1. try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。    2. 在try块中有System.exit(0);这样的语句,S
try catchreturnfinally 代码为 public class Test{ public int add(int a,int b){ try { return a+b; } catch (Exception e) { System.out.println("catch语句块") ...
转载 2021-08-25 20:38:00
146阅读
2评论
周五晚6点下班去面试,出了一份笔试题,看到第一题有些蒙了,虽然以前遇到过类似的问题,但并没有留心记一下,觉得没人会这样写代码,但实际上没有面试题中是有的。 1,有在try块执行不到finally的情况吗? 肯定是有,在try块中有System.exit(0);这样的语句,System.exit(0
转载 2018-06-09 11:41:00
137阅读
2评论
文章目录前言一、finallyreturn的纠缠不清(1)正常逻辑,如果出现异常(2)如果再加个finally,也return 会返回什么呢?如果finally中有return 那么就从finally
原创 2023-02-20 11:05:28
79阅读
先引出一道题执行下列代码的输出结果是( )public class Demo{ public static void main(String args[]){   int num = 10;   System
原创 2022-07-15 14:53:27
125阅读
结论:1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最好不
初识 return相信每一个用过Python函数的童鞋, 肯定会用过return语句, return顾名思义, 就是用来返回值给调用者, 例如:def test():a = 2return as = test()print s# 输出结果2对于上面的结果, 相信大家都不会感到意外, 那么加大点难度, 如果在return
转载 2024-01-12 00:24:19
42阅读
以前面试有人问过我这个问题,今天在网上看到相关的文章,因为自己也不甚理解所以自我测试,也对网上一些测试结果发表一些看法!情况1:try{} catch(){} finally{} return; package com.lwf.eus.servlet;   public class Test{       public static void main(String[] args){    
原创 2021-07-31 12:01:27
141阅读
以前面试有人问过我这个问题,今天在网上看到相关的文章,因为自己也不甚理解所以自我测试,也对网上一些测试结果发表一些看法!情况1:try{} catch(){} finally{} return; package com.lwf.eus.servlet;   public class Test{       public static void main(String[] args){    
原创 2021-07-31 12:03:06
141阅读
# Javafinallyreturn问题 在Java程序开发,我们经常会使用try-catch语句来处理异常情况。当在try块中发生异常时,我们可以通过catch块来捕获并处理异常。除了catch块,Java还提供了finally块,它可以用来执行无论是否发生异常都需要执行的代码。然而,当finally包含return语句时,可能会出现一些意料之外的结果。 ## finally
原创 2023-10-05 04:45:19
132阅读
结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最
转载 2023-07-11 17:03:36
142阅读
finally遇上return刚学异常捕获机制时,会有这么一个问题,当try中出现return
原创 2022-10-21 17:16:09
144阅读
1点赞
         
原创 2021-09-01 15:44:59
358阅读
# Javafinally块及其return语句的影响 在Java编程,`try-catch-finally`结构是一个异常处理的重要工具。它能帮助开发者妥善处理运行时错误。特别是在`finally`块里面的`return`语句,对于程序的返回值有特殊的影响。在这篇文章,我们将探讨这一点,并通过示例代码来加深理解。 ## try-catch-finally结构 在Java,`try
原创 10月前
22阅读
直接上代码:def fun3(): try: x=[1,2,3] raise return x.append(6) except Exception: x.append(4) return x finally: x.append(5) print("fun3 fi
问题分析首先来问大家一个问题:finally 语句块一定会执行吗?很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单 1.publicclassTest{publicstaticvoidmain(String[]args){System.out.println
转载 2022-02-25 14:10:52
67阅读
  • 1
  • 2
  • 3
  • 4
  • 5