【发布时间】:2009-10-16 14:52:36
【问题描述】:
我有一个多小时后的编码标准会议,我需要一个快速的答案。
有经验的 Java 程序员的共同智慧是不要抛出或捕获 java.lang.Exception(很少有异常 - 没有双关语的意思)。你不这样做的原因是声明
catch (java.lang.Exception ex) {...}
还会捕获未经检查的异常,在大多数情况下,这不是预期的。
我们已经有很多由现有团队成员编写的遗留代码,他们在其中捕获 java.lang.Exception 的子类、记录错误并将子类重新抛出为 java.lang.Exception。
我需要说服他们
- 他们需要停止编写这样的代码。
- 需要修复使用此反模式的现有代码
数字 2 意味着大量的重构。
如果我可以展示 Java 社区重量级人物之一(即 Joshua Bloch、James Gosling)的文章或博客条目,这将缩短会议上的争论。到目前为止,我的 google-fu 还没有出现任何内容。
有没有人知道一位受人尊敬的 Java 大师的文章或博客说您不应该抛出或捕获 java.lang.Exception?
非常感谢快速回答。
院长
【问题讨论】:
-
只是想告诉你这个问题:stackoverflow.com/questions/237585/… 里面有一些不错的答案
-
我在发这个之前读过那个。几个答案和 cmets 说同样的话,但我正在寻找权威。这将导致大量的重构,因此有专家的意见来支持我会有所帮助。