我分析了我正在使用Java源代码分析器的代码.其中一个警告是"始终将用户定义的异常声明为最终".还有许多其他警告没有多大意义,但这个让我有点困惑.
我正在研究一个框架,我有一个根通用异常(比如FrameworkGenericException),对于其他异常,我只是从根异常中导出它们.所以我有一个框架的例外层次结构.我可能会扩展层次结构,但我认为这个警告告诉我不要有这样的层次结构,而是单独定义它们.那么我应该走哪条路,你的评论是什么?
这对他们来说可能是标准做法:如果不应该继承类,则将类声明为final,并且他们可能认为所有异常都不会从中扩展。
但是,就您的情况而言,我认为制定一个通用例外并从中扩展所有其他例外是一件好事。说,你有:
public void frameworkMethod() throws IllegalDataException, InvalidCommandException;
Run Code Online (Sandbox Code Playgroud)
其中这些异常是 的子类FrameworkException。然后你可以更容易地处理异常。
try {
frameworkMethod();
} catch (FrameworkException ex) {
logger.log(Level.SEVERE, "An exception occured!", ex);
if (ex instanceof IllegalDataException) {
// Do something to recover
} else if (ex instanceof InvalidCommandException) {
//Inform the user
} //And so on...
}
Run Code Online (Sandbox Code Playgroud)
所以我想说,你正在做正确的事情,你的程序的架构将更容易使用。
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |