面试官:`try { return “a“; } finally { return “b“; }` 到底返回什么?99% 的人第一次都答错了!

发布时间:2026/9/18 5:52:52
面试官:`try { return “a“; } finally { return “b“; }` 到底返回什么?99% 的人第一次都答错了! Java 面试中经常会出现这样一道经典题publicstaticStringtest(){try{returna;}finally{returnb;}}很多人第一反应是返回a因为try先执行。也有人认为finally只是执行一下不会影响返回值。其实这两种答案都错了。正确答案是b为什么今天我们就把这道经典面试题彻底讲明白。一、为什么返回的是b很多初学者认为try{returna;}执行到这里方法就已经结束了。实际上Java 并不是这样工作的。当执行到returna;JVM 并不会立刻返回而是会经历下面几个步骤执行 try ↓ 遇到 return a ↓ 先把返回值保存起来 ↓ 执行 finally ↓ finally 中又执行 return b ↓ 覆盖之前保存的返回值 ↓ 最终返回 b所以try{returna;}finally{returnb;}最终返回b二、可以理解成下面这段伪代码为了方便理解可以把 JVM 的执行过程想象成Stringresult;try{resulta;}finally{resultb;}returnresult;虽然真正的 JVM 不是这样实现的但这样理解非常容易记忆。最后result b因此返回b三、如果 finally 没有 return 呢例如publicstaticStringtest(){try{returna;}finally{System.out.println(finally);}}输出finally a原因很简单finally只是执行了一段代码并没有修改返回值。所以返回仍然是 a。四、finally 中写 return 有什么问题来看下面这段代码publicstaticinttest(){try{inta10/0;return1;}finally{return2;}}很多人会认为应该抛出ArithmeticException实际上运行结果却是2为什么因为finally{return2;}不仅覆盖了return1;甚至连ArithmeticException也一起吞掉了。这意味着异常不会继续向外抛出。这也是为什么很多 Java 开发规范都明确要求不要在 finally 中写 return。五、实际开发中为什么不推荐这样写主要有两个原因第一会覆盖 try 或 catch 中的返回值。程序原本应该返回的数据可能被finally改掉容易造成逻辑错误。第二会吞掉异常。如果try中发生异常而finally又执行了return异常就不会继续抛出排查问题会变得非常困难。因此在企业开发中finally一般只负责关闭数据库连接关闭文件流释放锁清理资源而不会写return。六、面试如何回答如果面试官问try { return a; } finally { return b; }返回什么为什么可以这样回答最终返回b。因为try中执行return时JVM 会先保存返回值但不会立即返回而是继续执行finally。如果finally中也有return它会覆盖try中保存的返回值因此最终返回b。另外在实际开发中不建议在finally中写return因为它不仅会覆盖返回值还可能吞掉异常。七、总结记住下面几点即可try中的return不会立即返回。JVM 会先执行finally。如果finally中也有return会覆盖try的返回值。finally中的return还可能吞掉异常因此实际开发中应避免使用。一句话总结try中的return会先保存返回值但真正返回前一定会执行finally如果finally中也有return最终返回的一定是finally的结果。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询