【问题标题】:Java equivalent to .NET System.InvalidOperationExceptionJava 等效于 .NET System.InvalidOperationException
【发布时间】:2011-03-23 19:39:10
【问题描述】:

我对 Java 的异常包不像 .NET 那样熟悉。我的情况是,如果用 C# 编程,我会抛出一个System.InvalidOperationException

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

具体情况是:

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

如果调用者在isInteger()false 时调用intValue(),则应抛出异常。

问题是:什么类型的异常?

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

谢谢

【问题讨论】:

标签: java exception


【解决方案1】:

抛出IllegalStateException

表示方法已被调用 在非法或不适当的时间。 换句话说,Java 环境 或 Java 应用程序不在 请求的适当状态 操作。

【讨论】:

  • IllegalStateException 对于所询问的具体情况绝对正确。请注意,在某些情况下,我认为抛出UnsupportedOperationException 可能更合适。例如,如果 Iterator 不支持 remove 方法。
猜你喜欢
  • 2012-11-28
  • 2010-11-20
  • 2011-04-29
  • 2019-04-15
  • 2011-01-27
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多