当缺少子类的方法实现时,是否存在标准异常?

时间:2013-03-11 10:25:30

标签: java exception methods

上下文:

我有一个抽象类SuperClass,它有大量的子类,每个子类都在不同的业务对象上工作,但是以类似的方式。

我需要添加一些肯定在SuperClass中具有位置的新功能,但是它将依赖于特定于子类的属性,我需要在超类方法中获得它。这里显而易见的方法是在SuperClass中为属性添加一个抽象getter,并让每个子类覆盖它,以便它可以在调用时发送正确的属性。

问题是:我不允许更改其他子类的代码而不是我正在处理的子代码,因为他们担心会出现回归

所以我无法添加抽象方法,因为其他子类不再编译。

由于现在只有我正在处理的对象需要这个新功能,所以我可以在SuperClass中声明一个标准的非抽象方法,并在那里返回null。然后在我正在处理的子类中覆盖它,并且瞧瞧。

问题:

如果没有正确地在Javadoc中读取我的警告的人试图从另一个子类调用这个新方法,那么由于getter没有被正确覆盖,它将产生意外的结果。而不是在null中返回SuperClass(以及意外的结果),我认为抛出一个例外对我的其他程序员来说会更优雅和有用。

我可以定义一个自定义的例外,但是在“标准”例外中是否存在YouForgotToImplementSomethingExceptionPleaseReadTheJavadocException的某些内容?

编辑:

按照答案中的建议投掷Error并不是我非常喜欢的东西,但也许在这里模仿编译器的行为是有意义的吗?对此的想法?

2 个答案:

答案 0 :(得分:8)

我已经看到一些使用UnsupportedOperationException的库。

  

抛出以指示不支持所请求的操作。

答案 1 :(得分:-2)

确切的事是java.lang.AbstractMethodError