Java等效于.NET System.InvalidOperationException

Ser*_*sta 75 java exception

我不像Java那样熟悉Java的异常包.我处在一种情况下,如果用C#编程,我会抛出一个System.InvalidOperationException.

在创建自己的java.lang.RuntimeException子类之前,我需要知道是否存在类似的Java应该抛出的异常类型.

确切的情况是:

我的类是一个值对象,它提供一个int intValue()方法,返回一个int.但是,在某些情况下,当前值不能作为int提供,因此该类还提供了boolean isInteger()允许API用户知道何时intValue()可以安全地调用的情况.

如果主叫用户呼叫intValue()isInteger()false一个异常应该被抛出.

问题是:什么类型的例外?

我知道这个问题可能没有正确答案,但考虑到我没有很多设计Java API的经验,我想从其他Java开发人员那里了解他们期望在这种情况下抛出什么.

谢谢

Jon*_*eet 85

扔一个IllegalStateException:

表示在非法或不适当的时间调用了方法.换句话说,Java环境或Java应用程序未处于所请求操作的适当状态.

  • `IllegalStateException`对于被询问的特定情况肯定是正确的.请注意,在某些情况下,我认为抛出`UnsupportedOperationException`可能更合适.例如,如果`Iterator`不支持`remove`方法. (12认同)