看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。
来源:互联网 发布:cms html模板 编辑:程序博客网 时间:2024/05/22 07:51
try{ return x;}catch(Excpeiont e){ return y;}finally{ return z;}
这样的代码无论如何都返回z,那么上面的任何return都显得没有意义。所以我们在绝大多数情况下都不会在finally中使用return语句,
因为这使得这个方法几乎返回一个恒定的结果。但这并不能保证一个水平很差的程序员在finally中返回结果。我说的是即使你有需要这样做,
也完全可以换个方式来达到目前的,而不是写出在finally中返回结果这样烂的代码,因为这本身是不符合逻辑的。
既然没有必要在finally中返回结果,又会引起一些人的误用,为什么不直接禁止在finally中返回结果呢?它本来的目的就是为了保证必要的“操作”
而不是“返回结果”。所以完全可以设计为在finally中禁止return语句,这样既达到本来的目的,又不会使用任何人误用。比如
try{ return x; }catch(Excpeiont e){ return y; } finally{ close(z); }
非常可惜的是这个意见还不能向JLS提出,因为从java一出生已经这样设计了,突然在某一版本中改变的话,向前兼容就成了一句空话。
- 看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。
- try和finally代码块中同时有返回值时,返回结果的讨论
- Java 中 finally块与return语句的返回顺序
- 在try catch finally 中有return时的返回结果
- java中常用的集合极其特点
- 关于try和finally执行到的返回结果
- Java运行结果返回的是@加一串乱七八糟时
- 思念真的是一种病
- 武大校长的一封信 看完心情沉重 发现至少自己真的很堕落
- Java本身是一种设计的非常简单的语言!
- java的23种设计模式极其详解
- 谈黑马基础题之--java证明return是在finally执行后才返回的,且在finally无法改变返回值
- Java本身是一种设计的非常简单语言
- Java本身是一种设计的非常简单
- Java中 Finally的解析
- 使用java传参调用exe并且获取程序进度和返回结果的一种方法
- try-catch-finally在有返回值时返回的结果
- 程序员发现 Bug 的时候是怎样一种心境?
- C# WinForm 父窗体 子窗体 传值
- C++学习link
- 数据库设计原则
- DAPM之三:audio paths与asound.conf
- iOS: app被拒的原因
- 看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。
- 本地打印后台处理程序服务没有运行
- 第十二篇 黑马程序员-IO输入输出流
- WTL,ATL与MFC之比较
- bigbluebutton 安装日志
- arm linux kernel 从入口到start_kernel 的代码分析
- linux 命令之sort
- 【在线研讨】《敏捷开发用户故事分类与组织结构(三期)》2012-08-28(周二)
- 温昱谈程序员向架构师转型的规律