Java中是否有类似。net的NotImplementedException ?


当前回答

不,没有,它可能不存在,因为它的有效用途很少。我会在使用它之前三思。而且,创造自己确实很容易。

请参考这篇关于为什么它会出现在。net中的讨论。

我猜UnsupportedOperationException很接近,尽管它没有说操作只是没有实现,而是甚至没有支持。这可能意味着不可能有有效的实现。为什么该操作不受支持?它应该在那里吗? 界面隔离或利斯科夫替换问题?

如果工作正在进行中,我会使用ToBeImplementedException,但我从来没有发现自己定义了一个具体的方法,然后把它放在生产环境中太长时间,因此需要这样的异常。

其他回答

不,没有,它可能不存在,因为它的有效用途很少。我会在使用它之前三思。而且,创造自己确实很容易。

请参考这篇关于为什么它会出现在。net中的讨论。

我猜UnsupportedOperationException很接近,尽管它没有说操作只是没有实现,而是甚至没有支持。这可能意味着不可能有有效的实现。为什么该操作不受支持?它应该在那里吗? 界面隔离或利斯科夫替换问题?

如果工作正在进行中,我会使用ToBeImplementedException,但我从来没有发现自己定义了一个具体的方法,然后把它放在生产环境中太长时间,因此需要这样的异常。

我认为java.lang.UnsupportedOperationException就是你要找的。

本着Stackoverflow是Reddit和Wikipedia的结合的精神,这里有一些与问题相关的附加信息,也可以是问题的答案。

当你要求NetBeans IDE创建一个缺失的实现时,它会使用UnsupportedOperationException:

void setPropertiesWithReader(IDataReader rdr)
{
   throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}

如果它对NetBeans足够好,对我们也足够好。

Commons Lang手上有。或者你可以抛出一个UnsupportedOperationException。

你可以自己做(我就是这么做的)——为了不被异常处理所困扰,你只需要扩展RuntimeException,你的类看起来就像这样:

public class NotImplementedException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public NotImplementedException(){}
}

您可以扩展它以接收消息—但是如果您像我这样使用该方法(也就是说,作为提醒,仍然有一些东西需要实现),那么通常不需要额外的消息。

我敢说,我只使用这种方法,当我在开发一个系统的过程中,使我更容易不失去跟踪哪些方法仍然没有正确实现:)