看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。 - java开发指南博客 【转载】 - ITeye技术网站



看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。 - java开发指南博客 【转载】 - ITeye技术网站

这样的代码无论如何都返回z,那么上面的任何return都显得没有意义。所以我们在绝大多数情况下都不会在finally中使用return语句,

因为这使得这个方法几乎返回一个恒定的结果。但这并不能保证一个水平很差的程序员在finally中返回结果。我说的是即使你有需要这样做,

也完全可以换个方式来达到目前的,而不是写出在finally中返回结果这样烂的代码,因为这本身是不符合逻辑的。


既然没有必要在finally中返回结果,又会引起一些人的误用,为什么不直接禁止在finally中返回结果呢?它本来的目的就是为了保证必要的"操作"

而不是"返回结果"。所以完全可以设计为在finally中禁止return语句,这样既达到本来的目的,又不会使用任何人误用。比如


Read full article from 看完scala,发现java中finally允许返回结果真的是一种极其错误的设计。 - java开发指南博客 【转载】 - ITeye技术网站


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts