【发布时间】:2010-04-06 08:41:14
【问题描述】:
我不是 OO 编程的新手,但我面临着一个令人费解的情况。我得到了一个程序来开发和扩展,但以前的开发人员似乎对 OO 不太满意,似乎他们要么有 C 背景,要么对 OO 的理解不清楚。现在,我不建议我成为一个更好的开发人员,我只是认为我可以发现一些常见的 OO 错误。困难的任务是如何修改它们。
就我而言,我看到很多这样的:
if (ret == 1) {
out.print("yadda yadda");
} else if (ret == 2) {
out.print("yadda yadda");
} else if (ret == 3) {
out.print("yadda yadda");
} else if (ret == 0) {
out.print("yadda yadda");
} else if (ret == 5) {
out.print("yadda yadda");
} else if (ret == 6) {
out.print("yadda yadda");
} else if (ret == 7) {
out.print("yadda yadda");
}
ret是一个函数返回的值,其中所有的Exceptions都被吞掉了,在catch块中,上面的值都是显式返回的。通常情况下,异常会被简单地吞下,并带有空的 catch 块。
显然吞下异常是错误的OO设计。我的问题涉及返回值的使用。我认为这也是错误的,但是我认为将异常用于控制流同样是错误的,而且我想不出任何东西可以以正确的 OO 方式替换上述内容。
请问您的意见?
【问题讨论】:
-
@FrontierPsycho:默默吞下异常是不好的,但它与 OO 没有任何关系。实际上异常与OO无关:异常不存在在OOA/OOD级别。例外是(某些)语言特质。苹果/橙子。如果在您的 OO 分析/OO 设计中没有考虑到任何“异常”,那么您的 OOA/OOD 就会被破坏。
-
谢谢,我没想到异常与 OO 是分开的。不幸的是,应用程序的分析和设计是由其他人在很长时间和许多行代码之前完成的,从头开始更改它是一件痛苦的事情。我只是试图纠正最明显的错误和更容易纠正的事情。
标签: java oop return-value exception