java - 为什么自定义异常 java 类应该是最终的

标签 java oop exception final ibm-rad

我与 IBM Rational Software Architect for Websphere Software(RAD) 合作并运行了代码分析器。我收到警告说自定义 Java Exception 类应该是最终的。但没有正当理由。无论如何,对于某些要求,我们必须扩展自定义异常类以维护异常层次结构。所以 final 是没有用的。在某些情况下,如果我们想限制对象的创建,我们可以将构造函数标记为私有(private)。

那么,任何人都可以告诉我为什么自定义异常类应该是最终的吗?

最佳答案

我建议您参阅 Effective Java 一书:Josh Bloch 以充分的论据指出将类标记为最终类或记录扩展点以保持不变性并防止意外行为。

我指的是 Item 17 (继承或禁止的设计和文件)

无论如何,这可能只是一个建议,如果您确信可以忽略它 - 这只是为了确保您已经考虑过了。

关于java - 为什么自定义异常 java 类应该是最终的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16643501/

相关文章:

java.sql.SQLException : Column 'Max(category_id' not found

java - 用java启动一个新程序

java - 带有 jasper 报告的多个图表

oop - JDK 和重写?

android - XML 呈现期间出现异常

c# - Selenium 异常 : "return not in a function"

java - Flux 是如何垃圾收集的?

java - 检查桌面应用程序是否已在运行

java - 关于继承的Java类的性质的问题

c++ - 如何防止基类的 protected 成员在子类的第二级中仍然被访问?