0

我有一个可能为空的堆栈。我想检查它是否为空,如果是,我想抛出一个StackUnderFlowException

if(myStack.empty()) {
   throw new StackUnderFlowException("Some error message");
}

问题:

  1. 这有效率吗?我知道你不打算使用异常来控制流量。我不认为我是因为我明确地检查堆栈是否为空?
  2. 我如何导入StackUnderFlowException该类,因为我目前收到此错误:

    PriceHolder 类型的方法 foo(String) 引用了缺失的类型 StackUnderFlowException

非常感谢。

4

2 回答 2

1

从概念上讲,您对期望发生的事情使用流控制,对不应该发生的事情使用异常。在我见过的大多数库(包括标准 Java 库)中,尝试访问不存在的容器元素被认为是编程错误,并且通常使用异常或类似机制发出信号。

至于 #2,您需要确定 StackUnderFlowException 所在的包。如果您需要帮助,请指定您正在使用的 StackUnderFlowException。

于 2013-07-20T09:17:38.930 回答
0

这有效率吗?

当然。除非在有错误的代码中,否则它永远不会发生,谁在乎没有正确执行的代码的效率如何?

我知道您不打算使用 Exceptions 进行流量控制。

不管什么意思。这种gnomic pronunciamento的问题在于异常一种流控制形式。不要太挂在这个行业收到的意见。其中许多是短暂的,还有更多是毫无价值的。在这种情况下,抛出异常是完全合理的。在这种情况下,比使用带外返回值更好,有时没有任何带外返回值。

我不认为我是因为我明确检查堆栈是否为空?

我不明白这句话的相关性。

如何导入 StackUnderFlowException 类

什么 StackUnderflowException课?JDK中没有。梅耶你要写吗?

于 2013-07-20T10:01:43.163 回答