我对Java的异常包不如.NET那样熟悉。我处于一种情况,如果使用C#编程,我会抛出System.InvalidOperationException。
System.InvalidOperationException
在创建自己的java.lang.RuntimeException子类之前,我需要知道是否应该在Java中抛出类似的异常类型。
java.lang.RuntimeException
确切的情况是:
我的类是一个提供int intValue()方法的值对象,该方法返回一个int值。但是,在某些情况下,当前值不能作为int提供,因此此类还提供了一个boolean isInteger()允许API用户知道何时intValue()可以安全地调用它们的方法。
int intValue()
boolean isInteger()
intValue()
如果主叫用户呼叫intValue()时isInteger()是false一个异常应该被抛出。
isInteger()
false
问题是:什么类型的异常?
我知道这个问题可能没有 正确的 答案,但是考虑到我在设计Java API方面没有太多经验,我想从其他Java开发人员那里了解他们在这种情况下可能会遇到的问题。
谢谢
抛出IllegalStateException:
IllegalStateException
表示已在非法或不适当的时间调用了方法。换句话说,对于所请求的操作,Java环境或Java应用程序没有处于适当的状态。